Documente Academic
Documente Profesional
Documente Cultură
AMBIENTES LIBRES
TEMA
AGENDA
Factory
Method
Introduccin
Singleton
Conclusiones
INTRODUCCIN
PATRONES DE DISEO
PROPSITO: DE CREACIN
CLASE
OBJETO
FACTORY METHOD
SINGLETON
AGENDA
Factory
Method
Introduccin
Singleton
Conclusiones
Factory Method
Propsito:
Define una interfaz para crear un objeto
Las subclases son
las que deciden qu
clase instanciar
Factory Method
Motivacin:
El marco de trabajo debe crear instancias de
clases, pero slo conoce clases abstractas,
las cuales no pueden ser instanciadas.
Factory Method
Aplicacin
Una clase no puede prever qu objetos
crear.
Una clase quiere delegar la creacin de
objetos a sus subclases.
Se quiere localizar a la subclase auxiliar
concreta es la que se delega.
7
Factory Method
Estructura: Participantes y Colaboraciones
Tiene cuatro participantes:
Producto
Producto Concreto
Creador
Creador concreto
Colaboraciones:
El Creador se apoya en sus subclases para
definir el mtodo de fabricacin.
8
Factory Method
Estructura: Participantes y Colaboraciones
Factory Method
Consecuencias
Independencia en las clases especficas.
Herencia innecesaria.
Proporciona enganches para las
subclases.
10
Factory Method
Consecuencias
Conecta jerarquas de clases paralelas.
11
Factory Method
Implementacin
Dos variantes principales:
Clase creador abstracta.
Clase creador concreta.
Mtodos de fabricacin parametrizados.
Variantes por el lenguaje.
Usar plantillas para evitar la herencia.
Convenios de nominacin.
12
Factory Method
Ejemplo
13
AGENDA
Factory
Method
Introduccin
Singleton
Conclusiones
14
Singleton
Propsito:
15
Singleton
Motivacin:
Algunas clases solo necesitan exactamente
una instancia:
16
Singleton
Aplicacin
Cuando solo puede haber una instancia de
una clase, y debe ser accesible a los
clientes desde un punto de acceso bien
conocido.
Cuando el unico ejemplar pudiera ser
extensible por herencia, y los clientes
deberian usar el ejemplar de una subclase
sin modificar su codigo.
17
Singleton
Estructura: Participantes y Colaboraciones
Los clientes acceden a la instancia de
Singleton unicamente a traves del metodo
Instance de la clase Singleton
18
Singleton
Consecuencias:
Acceso controlado a una instancia unica
Espacio de nombres reducido
Permite refinar las operaciones y la
representacion
Permite un numero de instancias variable
Mas flexible que las operaciones de clase
(static)
19
Singleton
Implementacin:
Definicion de la clase: asegurar que solo
hay una instancia:
class Singleton {
private static Singleton ejemplar = null;
public static Singleton getEjemplar() {
if ( ejemplar == null )
ejemplar = new Singleton();
return ejemplar;
}
protected Singleton() {
// lo que sea necesario
}
public void metodo() {...} }
20
Singleton
Implementacin:
Utilizacion:
Singleton instance = Singleton.getEjemplar();
// ... instance.metodo();
Herencia de la clase Singleton
Como determinar en instance() que subclase utilizar?
Poner la implementacion de instance() en las
subclases
Usando un registro de singletons
21
AGENDA
Factory
Method
Introduccin
Singleton
Conclusiones
22
CONCLUSIONES
Factory Method es parte del mbito de clases y
Singleton es parte del mbito de objetos de los
patrones de diseo de propsito.
Singleton es necesario cuando hay clases que
tienen que gestionar de manera centralizada un
recurso.
Factory Method delega a las subclases para crear
los objetos.
Factory Method se debe usar cuando una clase no
sabe qu clase de objetos crear, se desea que las
subclases creen los objetos o cuando se quiere
saber qu clase auxiliar es la delegada.
23
AGENDA
Factory
Method
Introduccin
Singleton
Conclusiones
24
REFERENCIAS
E. Gamma; R. Helm, R. Jhonson, J. Vlissides
Patrones de Diseo Elementos de software
orientado a objetos reutilizables, 2007.
SourceMaking, Factory Method Design Pattern,
disponible en:
https://sourcemaking.com/design_patterns/factor
y_method
25