PATRONES

16
29/01/03 1 PATRONES 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

description

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. Contenido. Introducción ¿Qué es un patrón? Desarrollo histórico Tipos de patrones Patrones de diseño (Gamma) - PowerPoint PPT Presentation

Transcript of PATRONES

Page 1: 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

Page 2: PATRONES

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

Page 3: PATRONES

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

Page 4: PATRONES

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

Page 5: PATRONES

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

Page 6: PATRONES

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

Page 7: PATRONES

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”

Page 8: PATRONES

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”

Page 9: PATRONES

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

Page 10: PATRONES

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

Page 11: PATRONES

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

Page 12: PATRONES

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

Page 13: PATRONES

29/01/03 13

Ejemplo de patrón de Ejemplo de patrón de diseñodiseño

Page 14: PATRONES

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

Page 15: PATRONES

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

Page 16: PATRONES

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