sábado, 6 de junio de 2009

Cuestionario del Patrón Singletón

1) ¿Cuál es el nombre de la Clase?
2) ¿Por qué no se puede crear el segundo objeto?
3) ¿Qué programa de windows ejecuta el objeto?
4) ¿Cuál es el nombre del método constructor?.
5) ¿Cuál es el nombre del objeto destructor?.
6) Se puede aplicar el patrón Singleton para crear el objeto Administrador de un ---Servidor de Email. (Ventajas y Desventajas de aplicar este patrón).

lunes, 8 de septiembre de 2008

Entrega de Carátulas para el día 9/9/2008

Recuerden que el día martes es el último día para entregar las carátulas firmadas por todos los integrantes del grupo.

martes, 8 de julio de 2008

Prefinal, martes 8 de Julio de 2008

Cuestionario Guía

1 )¿Qué es una clase? explicar y ejemplificar .
2 )¿Que es un objeto? explicar y ejemplificar.
3)¿Cuáles son las relaciones entre clases?.
4) Pensar, explicar y justificar un ejemplo de cada una.
5) ¿Cuál es la diferencia entre un evento externo y otro temporal?.
6) ¿Un sistema de compras y ventas de productos tiene los mismos eventos
en todas las empresas?.
7) ¿Qué eventos puede tener el sistema del punto 6?. (Graficar en casa con DCU)
8) Pensar un ejemplo para aplicar el patrón singleton.




lunes, 7 de julio de 2008

Codificación en C++ del Patrón Singleton

Con el patrón singleton nos aseguramos que exista una sola instancia de la clase y podemos acceder a esta de forma global. Siempre debemos respetar el objetivo de la programación orientada a objetos y no colocar variables e instrucciones sueltas en diferentes partes del programa, esto quiere decir que el objetivo del patrón no puede estar disperso sino concentrado en la codificación de la clase.


La clase debe tener un método y una propiedad estática

(Estatico= en C++ static, podemos llamar a cualquier método o usar una propiedad sin tener la necesidad de crear un objeto, por ejemplo:

class CAuto
{
int codigoAuto;
public:
static void m_arrancar();

};

void m_arrancar()
{
cout << "El auto arranca" <<; }

//podemos invocar el método m_arrancar() sin tener que crear el //objeto por ejemplo:

CAuto::m_arrancar(); // así de simple sin tener que crear un objeto.

*tener en cuenta las restricciones de la utilización de static :


Volviendo al tema del patrón singleton, un ejemplo en C++

#include
#include


class CPrograma
{
public:
static CPrograma * VerificarInstancia();
ProbamosInstancia();

~CPrograma(){ cout << "Acá se destruye el programa";
}

protected:
// Constructor
CPrograma() {}
private:
static CPrograma * m_pVerificar;


};


CPrograma * CPrograma::m_pVerificar = 0;


CPrograma * CPrograma::VerificarInstancia()
{

if (!CPrograma::m_pVerificar)
{

cout << "El Objeto Programa se cargó con exito"<<>
CPrograma::m_pVerificar = new CPrograma();
return CPrograma::m_pVerificar;
}
else
{
cout << "El Administrador no permite cargar el programa dos veces" <<>
}


}


CPrograma::ProbamosInstancia()
{
cout << "Acá podemos agregar el codigo para la ejecución del programa" <<>
cout << "Recordar que el patrón singleton permite la creación de un solo objeto" <<>
system("calc.exe");

}



int main()

{
//CPrograma Oprograma = new CPrograma(); // da error porque no se puede crear
//un objeto con el acceso protegido al constructor

CPrograma * OPrograma = CPrograma::VerificarInstancia();
CPrograma * O1Programa = CPrograma::VerificarInstancia(); //Se intenta crear un nuevo objeto
//y el patrón singleton lo impide
OPrograma->ProbamosInstancia();

delete OPrograma;
system("pause");
return 0;

}



martes, 1 de julio de 2008

¿Cómo se clasifican los patrones?

Podemos clasificar a los patrones según el propósito que tienen en tres grupos principales
  1. Patrones de creación.
  2. Patrones estructurales.
  3. Patrones de comportamiento.

1) Los patrones de creación son aquellos que se utilizan para la creación de instancias de las clases y nos plantean soluciones documentadas a algunos problemas.
Patrones de creación: Singleton, Abstract Factory. Factory Method

2) Los patrones estructurales son aquellas soluciones documentadas para las relaciones entre clases, conbinación y formación de estructuras mayores. podemos mencionar a Adapter, Composite, Decorador. Facade. Proxy.

3) Los patrones de comportamiento son aquellas soluciones documentadas para la cooperación entre clases y la interacción de las mismas.
Adapter, Composite, Decorador. Facade. Proxy.






patrones de diseño

Patrones de diseño

Los patrones de diseño son soluciones documentadas a problemas clásicos surgidos en la construcción de sistemas orientados a objetos. Un patrón es una buena solución documentada a un problema comúm.
Un patrón tiene un nombre; describe una solución independiente del lenguaje con diagramas UML y pseudo código (También se suele ejemplificar en lenguajes populares como C++, Java y Smaltalk)
y finalmente informa de consecuencias en la aplicación del patrón (costos y beneficios, ya que en algunos casos, ciertos patrones son mutuamente excluyentes, y la aplicación de uno u otro varía en función del contexto el criterio del programador)
Por Diego Ruiz

lunes, 30 de junio de 2008

Definición Según Wikipedia

La definición anterior de patrones es de wikipedia la enciclopedia libre, yo participé en la creación y discusión del tema podemos aclarar que existen patrones que solucionan problemas específicos y que pueden ser reusables bajo la misma circunstancia aunque puede cambiar el escenario de aplicación. por ejemplo:
  1. Una puerta es una solución, cuando necesito una apertura de ingreso a algún lugar y también nos brinda seguridad y separación de ambientes. Pero cuidado porque todas las puertas no son iguales y seguramente puede cambiar según el escenario donde la aplique.
  2. Un termo es una solución cuando necesito conservar caliente un líquido por determinado tiempo.
  3. Una silla es una solución cuando necesito un elemento que sostenga a una persona por un determinado tiempo en posición de sentado.

Los patrones de diseño de sistemas son soluciones basadas en la experiencia de programadores y analistas que fueron probadas con éxito en distintos sistemas
y que pueden adaptarse perfectamente según las circunstancias. Por eso son soluciones de diseño que se transformarán en soluciones de Software para nuestro sistema. Por ejemplo el patrón Singleton es una solución cuando queremos crear un objeto solamente y no permitir que se creen mas de uno.
En sistemas podemos clasificar a los patrones de diseño de la siguiente forma

  1. Según su propósito:
    · Patrones de creación: para creación de instancias.
    · Patrones estructurales: relaciones entre clases, combinación y formación de estructuras mayores.
    · Patrones de comportamiento: interacción y cooperación entre clases.

*Cuidado para estos temas debes hacer un repaso de los temas: diagramas de clases, relaciones entre clases e iteracciones y cooperación entre clases.