PATRONES
description
Transcript of PATRONES
29/01/03 1
PATRONESPATRONES
Eva Lleonart MartínAsunción García-Menacho Rovira
Laboratorio de Sistemas de Información
Facultad de InformáticaUniversidad Politécnica de Valencia
29/01/03 2
ContenidoContenido
Introducción ¿Qué es un patrón? Desarrollo histórico Tipos de patrones
Patrones de diseño (Gamma) Ejemplo (patrón intermediario)
Descripción de patrón
29/01/03 3
IntroducciónIntroducción
Es un tema importante en el desarrollo de software actual: permite capturar la experiencia
El uso de patrones para el desarrollo de software establece la diferencia entre un buen y un mal diseño orientado a objetos
29/01/03 4
¿Qué es un patrón?¿Qué es un patrón?
Solución probada que se puede aplicar con éxito en un determinado tipo de problemas que aparecen repetidamente en el desarrollo del sistema software
No son librerías Se describen fundamentalmente en forma textual,
acompañada de diagrama y de pseudo-código
29/01/03 5
¿Qué es un patrón?¿Qué es un patrón? Algunas definiciones
“Un patrón es un pedazo de información con nombre, instructivo y significante, que captura la esencia de una familia exitosa y completa de soluciones a un problema recurrente en un contexto dado” Brad Appleton
“Cada patrón es una regla de tres partes, la cual expresa una relación entre un contexto dado, un conjunto de fuerzas que ocurren repetitivamente en ese contexto y cierta configuración de software que permite a esas fuerzas resolverse por si mismas” Richard Gabriel
29/01/03 6
¿Qué es un patrón?¿Qué es un patrón?
“Estos patrones en nuestras mentes son, más o menos, imágenes mentales de los patrones en el mundo: son representaciones abstractas de las reglas morfológicas que definen los patrones en el mundo. Sin embargo, son realmente diferentes. Los patrones en el mundo solo existen. Pero esos mismos patrones en nuestras mentes son dinámicos. tienen fuerza. Son generativos. Nos dicen qué hacer, cómo se pueden generar y, en ciertas circunstancias, que los debemos crear. Cada patrón es una regla que describe que debemos hacer para generar la entidad que los define” Christopher Alexander , The Timeless Way of Building, 1.979
29/01/03 7
Desarrollo históricoDesarrollo histórico
1964 - 1979: Christopher Alexander escribe varios libros acerca del planeamiento urbano y la construcción de edificios
En particular, “A Pattern Language: Towns, Buildings, Construction”, en 1977
1987. Ward Cunningham y Kent Beck aplican las ideas de Christopher para desarrollar un pequeño lenguaje de patrones, para aprender Smalltalk: “Using Pattern Languages for Object-Oriented Programs”
29/01/03 8
Desarrollo históricoDesarrollo histórico
de 1990 a 1992 se inicia el trabajo entre los miembros del “Gang of Four” (GoF)
1991. Se publica el libro de Jim Coplien “Advanced C++ Programming Styles and Idioms”, basado en la recopilación de la experiencia del autor por varios años
1993 se publica el libro “Design Patterns, Elements of Reusable Object-Oriented Software”
29/01/03 9
Tipos de patronesTipos de patrones
De arquitectura De Diseño De Análisis De procesos y organizacionales De negocios Idioms Para ambientes distribuidos
29/01/03 10
Patrones de diseñoPatrones de diseño
Características Son soluciones concretas Son soluciones técnicas Se aplican en situaciones muy comunes Son soluciones simples Facilitan la reutilización de las clases y del
propio diseño
29/01/03 11
Clasificación de GammaClasificación de Gamma Creación Estructural De Conducta
ClaseMétodo de Fabricación
Adaptador (clases)Interprete Plantilla
Objeto Fábrica Adaptador (objetos)Cadena de Responsabilidad
Constructor Puente Comando
Prototipo Composición Iterador
Singleton Decorador Intermediario
Fachada Observador
Flyweight Estado
Apoderado Estrategia
Visitante
Memoria
29/01/03 12
Ejemplo de patrón de Ejemplo de patrón de diseñodiseño
Estructura del patrón intermediario siguiendo la notación OMT
29/01/03 13
Ejemplo de patrón de Ejemplo de patrón de diseñodiseño
29/01/03 14
Descripción de un patrónDescripción de un patrón
Nombre: corto y descriptivo Problema: Descripción del problema que refuerza
la intención del patrón Contexto: precondiciones necesarias para que el
problema y su solución existan Fuerzas: son las variables importantes del
problema, que determinan qué tan buena o mala es una solución
29/01/03 15
Descripción de un patrónDescripción de un patrón
Solución: relaciones estáticas y reglas de funcionamiento que describen cómo llegar al resultado
Ejemplos Contexto resultante: El estado o configuración del
sistema después de aplicar el patrón
29/01/03 16
Descripción de un patrónDescripción de un patrón
Racionalidad: Una explicación justificada de los pasos o reglas en el patrón y del patrón como un todo, de la forma en la cual resuelve las fuerzas en el problema acorde con sus metas, principios y filosofía
Relaciones: Las relaciones estáticas y dinámicas de este patrón con otros.
Usos Conocidos