Construccion De Software Con Patrones
Capítulo 3
Patrones de diseño
Contenidos
1. 2. 3. Concepto de patrón Clasificación de patrones Estudio de algunos de los principales patrones GoF
• • • • • • • Adaptador Factoría Singleton Estrategia Composite Fachada Observador
2
Bibliografía
• [Larman 02] Larman, C. “UML y Patrones: Una introducción al análisis y diseño orientado a objetos y al procesounificado”, Segunda Edición, Prentice-Hall, 2002. Capítulo 23. • [Larman 05] Larman, C. “Applying UML and Patterns. An Introduction to Object-Oriented Analysis and Design and Iterative Development”, 3rd edition, Prentice-Hall, 2005. Capítulo 26. • [Gamma et al. 02] Gamma E., et al., Patrones de Diseño, Addison-Wesley, 2002.
3
Arquitectura software y patrones
“Una arquitectura orientada aobjetos bien estructurada está llena de patrones. La calidad de un sistema orientado a objetos se mide por la atención que los diseñadores han prestado a las colaboraciones entre sus objetos.” “Los patrones conducen a arquitecturas más pequeñas, más simples y más comprensibles” G. Booch
4
Diseño orientado a objetos
• “Diseñar software orientado a objetos es difícil pero diseñar softwareorientado a objetos reutilizable es más difícil todavía. Diseños generales y flexibles son muy difíciles de encontrar la primera vez” • ¿Qué conoce un programador experto que desconoce uno inexperto? Reutilizar soluciones que funcionaron en el pasado: EXPERIENCIA
5
Patrones
• Describen un problema recurrente y una solución. • Cada patrón nombra, explica, evalúa un diseño recurrente en sistemas OO.• Elementos principales: – Nombre – Problema – Solución: Descripción abstracta – Consecuencias
6
Granularidad
• Patrones de Código
– Nivel de lenguaje de programación
• Frameworks
– Diseños específicos de un dominio de aplicaciones.
• Patrones de Diseño
– Descripciones de clases cuyas instancias colaboran entre sí que deben ser adaptados para resolver problemas de diseño generalesen un contexto particular. – Un patrón de diseño identifica: Clases, Instancias, Roles, Colaboraciones y la Distribución de responsabilidades.
7
Patrones y frameworks
• Un framework es una colección organizada de clases que constituyen un diseño reutilizable para un dominio específico de software. • Necesario adaptarlo a una aplicación particular. • Establece la arquitectura de la aplicación• Diferencias:
– Patrones son más abstractos que los frameworks – Patrones son elementos arquitecturales más pequeños – Patrones son menos especializados
8
Modelo-Vista-Control (MVC paradigm o MVC framework)
• Utilizado para construir interfaces de usuario en Smalltalk-80. • Basado en tres tipos de objetos:
– Modelo: objetos del dominio – Vista: objetos presentación en pantalla (interfazde usuario) – Controlador: define la forma en que la interfaz reacciona a la entrada del usuario.
• Desacopla el modelo de las vistas.
9
90 80 70 60 50 40 30 20 10 0 1er trim. 2do trim. 3er trim. 4to trim. Este Oeste Norte
2tr 4tr 1tr 3tr
Vistas
Modelo
t1=20 t2=25 t3=90 t4=20
Este Oeste Norte
1tr. 20 30 47
2tr. 25 38 47
3tr. 4tr. 90 20 32 32 45 45Modelo-Vista-Control
• Utiliza los siguientes patrones: – Observer – Composite – Strategy – Decorator – Factory method
11
Plantilla de definición
• Nombre del patrón • Propósito
− ¿Qué hace? ¿Cuál es su razón y propósito? ¿Qué cuestión de diseño particular o problema aborda?
• Sinónimos • Motivación
− Escenario que ilustra un problema particular y cómo el patrón lo resuelve.
12
Plantillade definición
• Aplicabilidad
− ¿En qué situaciones puede aplicarse? ¿Cómo las reconoces? Ejemplos de diseños que pueden mejorarse
• Estructura
− Diagramas de clases que ilustran la estructura
• Participantes
− Clases que participan y sus responsabilidades
• Colaboraciones
− Diagramas de interacción que muestran cómo colaboran los participantes.
13
Plantilla de definición
•...
Regístrate para leer el documento completo.