Patrones Eva Lleonart Martín Asunción García-Menacho Rovira
Patrones Eva Lleonart Martín Asunción García-Menacho Rovira
Patrones Eva Lleonart Martín Asunción García-Menacho Rovira
1. Introducción
2. ¿Qué es un patrón?
Definiciones:
2
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
“Cada patrón es una regla de tres partes, la cual expresa
una relación entre un cierto contexto, un problema y una
solución. El patrón es, resumiendo, al mismo tiempo una
cosa que tiene su lugar en el mundo, y la regla que nos
dice cómo crear esa cosa y cuándo debemos crearla. Es al
mismo tiempo una cosa y un proceso; al mismo tiempo
una descripción de una cosa que tiene vida y una
descripción del proceso que la generó” Christopher
Alexander, The Timeless Way of Building, 1.979
Un buen patrón debe:
–Solucionar un problema: Un patrón captura soluciones,
no solo principios abstractos o estrategias
–Es un concepto probado
–La solución no es obvia
–Describe una relación: No solo describen módulos,
describen estructuras y mecanismos
–Tiene un componente humano significante: es estético y
de utilidad
James Coplien
“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
3. Desarrollo histórico
3
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
Bushmann et al. Pattern-Oriented Software Architecture: A
System of Patterns. 1996
Coplien y Schmidth. Pattern Languages of Program Design.
1995
4. Tipos de patrones
De arquitectura
De diseño
Idioms
De análisis
De negocios
De procesos y organizacionales
Pizarra
5
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
Son soluciones simples. Indican cómo resolver un problema
particular utilizando un pequeño número de clases relacionadas de
forma determinada. No indican cómo diseñar un determinado
sistema sino sólo aspectos puntuales del mismo.
6
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
El alcance indica si el patrón aplica principalmente a clases u objetos.
Los patrones de clases tratan de relaciones entre clases y sus
subclases. Estas relaciones se establecen a través de la relación de
herencia, por consiguiente son estáticas y definidas en tiempo de
compilación. Los patrones de objetos tratan de relaciones entre
objetos que pueden ser cambiadas en tiempo de ejecución y son más
dinámicas. Casi todos los patrones utilizan la herencia de alguna
forma. Pero son los patrones de clases los que se focalizan en las
relaciones de clase.
Patrón Intermediario
8
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
Figura 1. Patrón Intermediario
5. Patrones y componentes
10
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
Usos conocidos: Describe ocurrencias del patrón conocidas y su
aplicación dentro de los sistemas existentes
11
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
11) Ejemplo de código, 12) Usos conocidos y Patrones relacionados
12
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia