Date post: | 24-Sep-2015 |
Category: |
Documents |
Upload: | zeroraider |
View: | 4 times |
Download: | 0 times |
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
APLICACIONES EN
AMBIENTES LIBRES
Patrones de Creacin: Factory Method
y Singleton Grupo 5
TEMA
AUTORES: SANTIAGO GUALOTUA
SAMANTHA MOLINA
DAVID ROMERO
ANDRS SAMANIEGO
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
2
AGENDA
Factory Method
Singleton
Conclusiones
Introduccin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
INTRODUCCIN
3
CLASE
PATRONES DE DISEO
PROPSITO: DE CREACIN
FACTORY METHOD
OBJETO
SINGLETON
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
4
AGENDA
Factory Method
Singleton
Conclusiones
Introduccin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
5
Propsito:
Define una interfaz para crear un objeto
Las subclases son
las que deciden qu
clase instanciar
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
6
Motivacin:
El marco de trabajo debe crear instancias de
clases, pero slo conoce clases abstractas,
las cuales no pueden ser instanciadas.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
7
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.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
8
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.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
9
Estructura: Participantes y Colaboraciones
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
Independencia en las clases especficas. Herencia innecesaria. Proporciona enganches para las
subclases.
10
Consecuencias
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
Conecta jerarquas de clases paralelas.
11
Consecuencias
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
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
Implementacin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Factory Method
13
Ejemplo
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
14
AGENDA
Factory Method
Singleton
Conclusiones
Introduccin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
15
Propsito: Una clase slo una
instancia
Proporciona un punto de
acceso global
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
16
Motivacin:
Algunas clases solo necesitan exactamente
una instancia:
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
17
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.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
18
Estructura: Participantes y Colaboraciones
Los clientes acceden a la instancia de
Singleton unicamente a traves del metodo
Instance de la clase Singleton
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
19
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)
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
20
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() {...} }
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
Singleton
21
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
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
22
AGENDA
Factory Method
Singleton
Conclusiones
Introduccin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
CONCLUSIONES
23
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.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
24
AGENDA
Factory Method
Singleton
Conclusiones
Introduccin
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERIA DE
SISTEMAS
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/factory_method
25