Patrones GoF (Gang of Four)

Anuncio
Patrones GoF
(Gang of Four)
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
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
Agosto – Diciembre 2007
Patrones Gang of Four
Propuestos por Gamma, Helm, Johnson, Vlissides.
• Adaptador.
• Factoría
• Estrategia.
• Composite.
• Fachada.
• Observador.
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Adaptador
• Problema: Como unir interfaces incompatibles, o
proveer una interfaz similar con componentes de diferentes interfaces.
• Respuesta: Convierta la interfaz original de un
componente en otra interfaz y una a través de adaptadores.
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Adaptador
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Fabrica
• Problema: Quien debe ser el responsable de crear un
objeto cuando implica consideraciones o lógica especial.
• Respuesta: Cree una fabrica que se encargue de esto
(Esto lo permite la fabricación pura).
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Fabricación Pura
• Problema: A quien le asigno un conjunto de
responsabilidades relacionadas. Las cuales el patrón experto no las agrupa adecuadamente.
• Respuesta: Crear clases artificiales que agrupan
dichas funcionalidades relacionadas
• Contraindicaciones: ¡Peligro!, puede convertir POO
en funcional.
• Ejemplo: Quien es la encargada de realizar la
persistencia de un objeto venta.
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Fabrica
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Singleton
• Problema: Existen objetos que deben ser accedidos
desde un punto global y único
• Respuesta: Atributos y métodos estáticos
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Singleton
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Estrategia
• Problema: Como se diseña para protegerse de variaciones de algoritmos o políticas
• Respuesta: Cada política o algoritmo se implementa en una clase de diferente con una interfaz común
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Estrategia
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Composite
• Problema: Como tratar con una composición de objetos del mismo tipo como si fuera un objeto atómico
• Respuesta: Defina clases para los objetos compuestos y atómicos, los cuales debe implementar la misma clase.
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
Composite
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
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
Agosto – Diciembre 2007
Fachada
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Agosto – Diciembre 2007
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
Agosto – Diciembre 2007
Descargar