Está en la página 1de 19

Patrones de Diseo

Ingeniera Mnica Esther Ospino Pinedo


Universidad de Cartagena
Programa de Ingeniera de Sistemas
Arquitectura de Software

Patrn
Un patrn describe un problema que ocurre una y
otra vez en nuestro entorno y describe tambin el
ncleo de la solucin al problema, de forma que
puede utilizarse un milln de veces sin tener que
hacer dos veces lo mismo. *

*Alexander, C., A Pattern Language, Oxford University Press,


1977

Estructura de un Patrn
Un patrn se caracteriza como
una regla de tres partes que
expresa una relacin entre
cierto contexto, un problema y
una solucin*.

*Alexander, C., The Timeless Way of Building, Oxford


University Press, 1979

Estructura de un Patrn
Contexto
Describe la situacin en la cual ocurre el problema.

Problema
Representa el problema que nace repetidamente en un
contexto dado.
Comienza con su especificacin general, determinando
cul es el problema en concreto que se debe resolver
y tratando de balancear sus fuerzas.

Solucin:
Muestra cmo resolver un problema recurrente, o
cmo balancear mejor las fuerzas asociadas a l:
Los requisitos que las soluciones deben cumplir.
Las restricciones que se deben considerar.
Las propiedades deseables que la solucin debera
tener.

Estructura de un Patrn

Patrn

Ha
resuelto
problemas
similares
en
ocasiones
anteriores

Reusabili
dad

Efectivid
ad

Para que una solucin sea considerada un


patrn debe poseer ciertas caractersticas:

Aplicable a
diferentes
problemas
de diseo
en
distintas
circunstan
cias

Definicin de Patrones de Diseo


Descripcin de clases y
objetos

Comunicndose entre s
Adaptada para resolver
un problema de diseo
general en un contexto
particular

Definicin de Patrones de Diseo


Son el esqueleto de las
soluciones a problemas
comunes en el desarrollo
de software
Brindan una solucin ya
probada y documentada a
problemas de desarrollo
de software que estn
sujetos a contextos
similares.
Facilitan la reutilizacin de
arquitecturas y diseos de
software exitosos

Definicin de Patrones de Diseo


Cada patrn describe un problema
que ocurre una y otra vez en nuestro
entorno
Describe tambin el ncleo de la
solucin al problema
De forma que puede utilizarse un
milln de veces sin tener que hacer
dos veces lo mismo.

Por Qu Patrones de
Diseo?
El diseo OO es difcil y el diseo de
software OO reutilizable lo es an ms.
Los diseadores expertos no resuelven los
problemas desde sus principios; reutilizan
soluciones que han funcionado en el
pasado.
Se encuentran patrones de clases y objetos de
comunicacin recurrentes en muchos sistemas
orientados a objetos.
Estos patrones resuelven problemas de diseo
especficos y hacen el diseo flexible y reusable

PATRONES DE DISEO
Son la base para la
bsqueda de
soluciones a
problemas comunes
en el desarrollo de
software y otros
mbitos referentes
al diseo de
interaccin o
interfaces.

Resulta ser una


solucin a un problema
de diseo.

Objetivos de los Patrones de


Diseo

Pretenden:
Proporcionar catlogos de elementos reusables en el
diseo de sistemas software.
Evitar la reiteracin en la bsqueda de soluciones a
problemas ya conocidos y solucionados anteriormente.
Formalizar un vocabulario comn entre diseadores.
Estandarizar el modo en que se realiza el diseo.
Facilitar el aprendizaje de las nuevas generaciones de
diseadores condensando conocimiento ya existente.

Objetivos de los Patrones de


Diseo

No Pretenden:
Imponer ciertas alternativas de diseo frente a
otras.
Eliminar la creatividad inherente al proceso de
diseo.

Estructura de un Patrn de Diseo


Nombre del Patrn
Describe el problema de diseo, junto con sus soluciones y
consecuencias.
Vocabulario de diseo

Problema

Describe cundo aplicar el patrn.


Explica el problema y su contexto

Solucin
Describe los elementos que forman el diseo, relaciones,
responsabilidades.
No un diseo concreto, sino una plantilla que puede aplicarse
en muchas situaciones distintas.

Consecuencias

Resultados, ventajas e inconvenientes de aplicar el patrn.


P.ej.: relacin entre eficiencia en espacio y tiempo; cuestiones
de implementacin etc.

Plantilla
Cada patrn de diseo debe describir:

Nombre del
patrn
Clasificacin
Intencin
Nombre
alternativo
Motivacin
Aplicabilidad
Estructuras

Participantes
Colaboraciones
Consecuencias
Implementacin
Cdigo de
ejemplo
Usos conocidos
Patrones
relacionados

Clasificacin de los Patrones de


Diseo

Segn su Propsito:
De
Creacin

Estructural
es

Conciernen
al proceso
de creacin
de objetos

Tratan la
composicin
de clases
y/o objetos

De
Comportamien
to
Caracterizan las
formas en
las que
interactan y
reparten

Clasificacin de los Patrones de Diseo


Segn el grupo GoF (Gang of Four) : Exposiciones para 12 de
mayo Guiarse por estructura y plantilla de patrn.
mbito/Prop
sito

Creacin

Estructural

Comportamie
nto

Clase:
Montoya,
Florez,
Jimenez

Factory
Method

Adapter

Interpreter
Template
Method

Objeto

Abstract
Factory
Builder
Prototype
Singleton
Ahumada,
Garca Aljure,
Mercado

Bridge
Composite
Decorator
Villalobos,
Trivio, Pea
Facade
Flyweight
Proxy
Carbal,
Angulo,
Galofre

Chain of
Responsibi
lty
Command
Iterator
Mediator
Yau, Sayas,
Mestre
Memento
Observer
State

Relacion
es entre
Patrones
de
Diseo

Patrones de Diseo Fundamentales

No aparecen en la clasificacin
anterior, pero se utilizan
habitualmente:
Delegation
Interface
Marker Interface