PATRONES
Eva Lleonart Martín
Asunción García-Menacho Rovira
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
29/01/03
1
Contenido




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
2
Introducció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
3
¿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
4
¿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
5
¿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
6
Desarrollo 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
7
Desarrollo 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
8
Tipos de patrones







De arquitectura
De Diseño
De Análisis
De procesos y organizacionales
De negocios
Idioms
Para ambientes distribuidos
29/01/03
9
Patrones 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
10
Clasificación de Gamma
Creación
Estructural
De Conducta
Clase
Mé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
11
Ejemplo de patrón de diseño

29/01/03
Estructura del patrón intermediario siguiendo la
notación OMT
12
Ejemplo de patrón de diseño
29/01/03
13
Descripció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
14
Descripció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
15
Descripció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
29/01/03
16
Descargar

PATRONES - Universidad Politécnica de Valencia