3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA...

13
3.- Introducción a 3.- Introducción a Patrones de Diseño Patrones de Diseño Justo N. Hidalgo Sanz Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE INGENIERÍA INFORMÁTICA

Transcript of 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA...

Page 1: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

3.- Introducción a 3.- Introducción a Patrones de DiseñoPatrones de Diseño

Justo N. Hidalgo SanzJusto N. Hidalgo Sanz

DEPARTAMENTO DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA INFORMÁTICAINFORMÁTICA

Page 2: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Índice

Qué es un patrón de diseño Tipos de patrones

Creacionales Estructurales De Comportamiento

Page 3: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Introducción

Las estructuras pueden ser diferentes, pero resolver un mismo problema

Christopher Alexander: un patrón es una solución a un problema en un contexto.

Describe un tipo de problema que ocurre recurrentemente, para después describir una solución genérica para que pueda utilizarse en cualquier “instancia” de ese problema.

Page 4: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

The Gang of Four

El libro “Design Patterns. Elements of Reusable Object-Oriented Software” de Gamma, Helm, Johnson and Vlissides ha sido el de mayor influencia en el mundo de los patrones. Aplicó la idea de Patrones al Software, Describió una estructura de catalogación, Catalogó 23 patrones, Postuló estrategias orientadas a objetos de utilización

de estos patrones. No es el único:

POSA (Pattern-Oriented Software Architecture), vol. 1 y 2.

UML y Patrones. C. Larman ...

Page 5: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Uso

Para qué sirven los patrones: Reutilización de soluciones Establecimiento de una terminología común

¡Al principio es una locura! Ayuda al trabajo en equipo

Perspectiva a alto nivel de los problemas y de sus soluciones

No nos metemos en detalles demasiado pronto Establecimiento de metodología común

Diseño a partir de interfaces Dar más importancia a la composición sobre la

herencia Favorecer la encapsulación de comportamientos

Page 6: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Patterns are

Everywhere!

Tipos de Patrones (I)

Page 7: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Tipos de Patrones (y II)

GoF los divide en tres tipos: Creacionales (creational)

Patrones que se refieren al proceso de creación de objetos

Estructurales (structural) Patrones que tratan con la composición de clases u

objetos De Comportamiento (behavioural)

Caracterización de las maneras en que las clases/objetos interactúan entre sí y se distribuyen las responsabilidades.

Page 8: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Design Pattern’s Name Jurisdiction Characterization

Intent

Also Known As

Motivation

Applicability

Structure

Participants

Collaborations

Consequences

Implementation

Sample Code

Known Uses

Related Patterns

Observer

Estructura de los Patrones (I)

Page 9: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Estructura de los Patrones (II)

Nombre del patrón Clasificación Intención: párrafo que responde a:

¿qué hace el patrón de diseño? ¿cuál es su intención? ¿qué tema o problema de diseño trata?

Alias (also known as) Otros nombres para el patrón, si existen.

Motivación Un escenario que ilustre el problema y cómo el

patrón lo resuelve.

Page 10: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Estructura de los Patrones (III)

Aplicabilidad Situaciones donde el patrón es aplicable Forma de reconocer estas situaciones

Estructura Representación gráfica de las clases que forman el

patrón. Generalmente en UML. Participantes

Clases, objetos, y sus responsabilidades Colaboraciones

Cómo colaboran los participantes

Page 11: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Estructura de los Patrones (y IV)

Consecuencias Cómo cumple el patrón sus objetivos Qué aspecto de la estructura del sistema se puede

variar independientemente Qué posibles problemas o compromisos tiene el

patrón Implementación

Trucos, problemas, técnicas, … a utilizar cuando se implementa el patrón

Código de ejemplo Usos conocidos

Ejemplos en sistemas reales. Patrones relacionados

Page 12: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Estructura del curso

Estudiaremos algunos de los patrones del GOF: Introducción teórica Diseño de la solución Ejemplos prácticos: diseño e implementación (Java /

C#) Otros serán de estudio independiente.

Se espera el mismo nivel de maestría que con los explicados en clase.

Ejemplo aglutinador. La descripción del problema se encontrará en la web

una semana antes: obligatorio haberlo leído antes de llegar a clase.

Page 13: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.

Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)

Bibliografía

Design Patterns. Elements of reusable object-oriented software. Gamma et al. Ed. Addison-Wesley

The Unified Software Development Process. I. Jacobson, G. Booch, J. Rumbaugh. Ed. Addison-Wesley. ISBN: 0-201-57169-2

CSCE966: Software Architectures & Frameworks - Department of Computer Science & Engineering - Universidad de Nebraska

Curso de Netobjectives.com