Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conferencia 5
Patrones de Diseño
Objetivos:
•
Definir los patrones.
•
Conocer la influencia de los patrones en el
desarrollo de software.
•
Aprender a aplicar los patrones GRASP.
¿Qué conoce un programador experto
que desconoce uno inexperto?
REUTILIZACIÓN
¿Qué es un Patrón de Diseño?
Pioneros
∙ Kent Beck y Ward Cunningham, Textronix (OOPSLA'87)
Usan las ideas de “patrones” de Alexander para el diseño de
GUIs en Smalltalk
Comunicación operativa.
Actividad:
Diseño de Clases
Patrones GRASP
Craig Larman. UML y Patrones. Introducción
al Análisis y Diseño orientado a objetos.
Patrones Generales de Software para Asignar
Responsabilidades GRASP (General Responsibility
Assignment Software Patterns)
Patrones GRASP
1. Experto 6. Polimorfismo
2. Creador 7. Fabricación Pura
3. Controlador 8. Indirección
4. Bajo Acoplamiento 9. No hables con extraños
5. Alta Cohesión
Patrones GRASP
CLASE RESPONSABILIDAD
Un objeto de TipoX invoca los servicios de un objeto de TipoY.
El TipoX tiene un método que referencia a una instancia de TipoY, o
al propio TipoY, de algún modo. Esto, generalmente, comprende un
parámetro o variable local de TipoY, o que el objeto de retorno de un
mensaje sea una instancia de TipoY.
El TipoX es una subclase, directa o indirecta, del TipoY.
El Tipo Y es una interfaz y el TipoX implementa esa interfaz.
Bajo Acoplamiento
Patrones de Diseño de Larman
Alta Cohesión
Problema: ¿Cómo mantener la complejidad dentro de límites
manejables?
Criptografía Cifrar()
Descifrar()
CifrarCliente()
DescifrarCliente()
CifrarServidor()
DescifrarServidor() Criptografía cliente Criptografía servidor
Cifrar() Cifrar()
Descifrar() Descifrar()
Bibliografía
UML y Patrones. 2da Edición. Craig Larman,
Capítulo 16. páginas 160-186