You are on page 1of 17

Patrones GoF

(Gang of Four)

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Recordando...
• GRASP:Patrones de principios generales para
asignar responsabilidades.
• Es un conjunto de guias que determinan como se
deben repartir las responsabilidades.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Patrones Gang of Four
Propuestos por Gamma, Helm, Johnson, Vlissides.
• Adaptador.
• Factoria.
• Estrategia.
• Composite.
• Fachada.
• Observador.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Adaptador
• Problema: C omo unir interfaces incompatibles, o
proveer una interfaz similar con componentes de
diferentes interfaces.
• R es pues ta: C onvierta la interfaz original de un
componente en otra interfaz y una a travez de
adaptadores.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Adaptador

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Fabrica
• Problema: Q uien debe ser el responsable de crear un
objeto cuando implica consideraciones o logica
especial.
• R es pues ta: C ree una fabrica que se encarge de esto
(Esto lo permite la fabricacion pura).

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Fabricación Pura

• Problema: A quien le asigno un conjunto de


responsabilidades relacionadas. Las cuales el patron
experto no las agrupa adecuadamente.
• R es pues ta: C rear clas es artificiales que agrupan
dichas funcionalidades relacionadas
• C ontraindicaciones : ¡P eligro!, puede convertir P O O
en funcional.
• Ejemplo: Q uien es la encargada de realizar la
persistencia de un objeto venta.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Fabrica

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Singleton
• Problema: E xisten objetos que deben ser accedidos
desde un punto global y unico.
• R es pues ta: Atributos y metodos estaticos.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Singleton

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Estrategia
• Problema: Como se diseña para protegerse de
variaciones de algoritmos o politicas.
• Respuesta: Cada politica o algoritmo se implementa
en una clase de diferente con una interfaz comun.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Estrategia

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Composite
• Problema: Como tratar con una composicion de
objetos del mismo tipo como si fuera un objeto
atomico.
• Respuesta: Defina clases para los objetos compuetos
y atomicos, los cuales debe implementar la misma
clase.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Composite

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Fachada
• Problema: Como relacionar diferentes subsistemas si
no deseo mas acoplamiento o algunos subsistemas
son propensos a cambios.
• Respuesta: Cree fachadas que representen un
subsistema.

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Fachada

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008
Lecturas Recomendadas
• Applying UML and Patterns: An Introduction to Object-
Oriented Analysis and Design and Iterative
Development, Craig Larman. Tercera Edición (Capitulo
26).
• Head First Design Patterns, Eric Freeman & Elisabeth
Freeman (Capitulos 4, 5, 7 y 9 ).

Escuela de Ingeniería de Sistemas y Computación


Desarrollo de Software II
Febrero – Junio 2008

You might also like