Vous êtes sur la page 1sur 13

3.

- Introduccin a Patrones
de Diseo
Justo N. Hidalgo Sanz

DEPARTAMENTO DE INGENIERA INFORMTICA

ndice

Qu es un patrn de diseo
Tipos de patrones

Creacionales
Estructurales
De Comportamiento

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Introduccin

Las estructuras pueden ser diferentes, pero resolver


un mismo problema

Christopher Alexander: un patrn es una solucin a


un problema en un contexto.
Describe un tipo de problema que ocurre
recurrentemente, para despus describir una
solucin genrica para que pueda utilizarse en
cualquier instancia de ese problema.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (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 catalogacin,
Catalog 23 patrones,
Postul estrategias orientadas a objetos de utilizacin de
estos patrones.

No es el nico:

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


UML y Patrones. C. Larman
...

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Uso

Para qu sirven los patrones:

Reutilizacin de soluciones
Establecimiento de una terminologa comn

Perspectiva a alto nivel de los problemas y de sus


soluciones

Al principio es una locura!


Ayuda al trabajo en equipo

No nos metemos en detalles demasiado pronto

Establecimiento de metodologa comn

Diseo a partir de interfaces


Dar ms importancia a la composicin sobre la herencia
Favorecer la encapsulacin de comportamientos

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Tipos de Patrones (I)


Patterns
are
Everywhere!

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Tipos de Patrones (y II)

GoF los divide en tres tipos:

Creacionales (creational)

Estructurales (structural)

Patrones que se refieren al proceso de creacin de objetos


Patrones que tratan con la composicin de clases u objetos

De Comportamiento (behavioural)

Caracterizacin de las maneras en que las clases/objetos


interactan entre s y se distribuyen las responsabilidades.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Estructura de los Patrones (I)


Design Patterns Name

Jurisdiction Characterization

Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Escuela Politcnica Superior de Ingeniera
Departamento de Ingeniera Informtica (DII)

Observer

Estructura de los Patrones (II)

Nombre del patrn


Clasificacin
Intencin: prrafo que responde a:

Alias (also known as)

qu hace el patrn de diseo?


cul es su intencin?
qu tema o problema de diseo trata?
Otros nombres para el patrn, si existen.

Motivacin

Un escenario que ilustre el problema y cmo el patrn lo


resuelve.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Estructura de los Patrones (III)

Aplicabilidad

Estructura

Representacin grfica de las clases que forman el patrn.


Generalmente en UML.

Participantes

Situaciones donde el patrn es aplicable


Forma de reconocer estas situaciones

Clases, objetos, y sus responsabilidades

Colaboraciones

Cmo colaboran los participantes

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Estructura de los Patrones (y IV)

Consecuencias

Implementacin

Trucos, problemas, tcnicas, a utilizar cuando se


implementa el patrn

Cdigo de ejemplo
Usos conocidos

Cmo cumple el patrn sus objetivos


Qu aspecto de la estructura del sistema se puede variar
independientemente
Qu posibles problemas o compromisos tiene el patrn

Ejemplos en sistemas reales.

Patrones relacionados

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Estructura del curso

Estudiaremos algunos de los patrones del GOF:

Otros sern de estudio independiente.

Introduccin terica
Diseo de la solucin
Ejemplos prcticos: diseo e implementacin (Java / C#)
Se espera el mismo nivel de maestra que con los
explicados en clase.

Ejemplo aglutinador.

La descripcin del problema se encontrar en la web una


semana antes: obligatorio haberlo ledo antes de llegar a
clase.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Bibliografa

Design Patterns. Elements of reusable objectoriented software. Gamma et al. Ed. AddisonWesley
The Unified Software Development Process. I.
Jacobson, G. Booch, J. Rumbaugh. Ed. AddisonWesley. ISBN: 0-201-57169-2
CSCE966: Software Architectures & Frameworks Department of Computer Science & Engineering Universidad de Nebraska
Curso de Netobjectives.com

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Vous aimerez peut-être aussi