Sunteți pe pagina 1din 32

Arquitectura de Software

Ingeniera de Sistemas
ITM
Unidad 2. Los patrones de diseo en el
desarrollo de Software
Unidad 2.1 Patrones orientados a la
creacin

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
El inicio de los patrones de diseo se dio en
1979, cuando el arquitecto Christopher
Alexander public el libro The Timeless Way
of Building, que se constituy en un gran
aporte para la arquitectura.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
En este libro, el autor, propona el
aprendizaje y uso de una serie de patrones
para la construccin de edificios de una
mayor calidad.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
El autor asegura que Cada patrn describe
un problema que ocurre infinidad de veces
en nuestro entorno, as como la solucin al
mismo, de tal modo que podemos utilizarla
un milln de veces ms sin tener que
pensarla otra vez.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
Tras el xito de los patrones en la arquitectura,
en 1987, Ward Cunningham y Kent Beck se
basaron en varias ideas de Alexander para
desarrollar cinco patrones de intraccin
hombre-computador (HCI) y publicaron un
artculo Using Pattern Languages for OO
Programs.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
Sin embargo, no fue hasta principios de los
90s cuando los patrones de diseo tuvieron
un gran xito en el mundo de la informtica
tras la publicacin del libro Design Patterns
escrito por el grupo denominado GoF (Gang of
Four), que en espaol significa La pandilla de
los cuatro.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Antecedentes e historia
En esta publicacin el grupo GoF recoga 23
patrones de diseo comunes para el desarrollo
de Software.

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Catalogo de patrones de diseo
Los 23 patrones, mencionados anteriormente,
estn organizados por dos criterios:
Propsito (de creacin, estructurales y de
comportamiento).
mbito (clase y objeto).

Arquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Aspectos de diseo que los patrones de diseo
permiten modificar
Propsito

De
creacin

Patrones de
diseo

Aspectos que pueden


variar

Abstract Factory

La familia de los objetos


producidos

Builder

Cmo se crea un objeto


compuesto

Factory Method

La subclase del objeto que es


instanciado

Prototype

La clase del objeto que es


instanciado

Singleton

La nica instancia de una


claseArquitectura de Software

Los patrones de Diseo en el


Desarrollo de Software
Aspectos de diseo que los patrones de diseo
permiten modificar
Propsito

Patrones de
diseo

Aspectos que pueden


variar

Adapter

La interfaz de un objeto

Bridge

La implementacin de un
objeto

Composite

La estructura y composicin
de un objeto

Estructural Decorator
es

Las responsabilidades de un
objeto sin usar la herencia

Facade

La interfaz de un subsistema

Flyweight

El coste de almacenamiento
de los objetos

Proxy

Cmo se accede a un objeto;


Arquitectura de Software
su ubicacin

Los patrones de Diseo en el


Desarrollo de Software
Aspectos de diseo que los patrones de diseo permiten
modificar
Propsito

De
comportamie
nto

Patrones de
diseo

Aspectos que pueden


variar

Chain of
Responsibility

El objeto que puede satisfacer una


peticin

Command

Cundo y cmo se satisface una


peticin

Interpreter

La gramtica e interpretacin de un
lenguaje

Iterator

Cmo se recorren los elementos de


un agregado

Mediator

Qu objetos interactan entre s, y


cmo

Memento

Qu informacin privada se
almacena fuera de un objeto, y
cundo

Observer

Arquitectura
de Software
El nmero
de objetos
que dependen

Los patrones de Diseo en el


Desarrollo de Software

Aspectos de diseo que los patrones de diseo permiten


modificar
Propsito

De
comportamie
nto

Patrones de
diseo

Aspectos que pueden


variar

State

El estado de un objeto

Strategy

Un algoritmo

Template Method

Los pasos de un algoritmo

Visitor

Las operaciones que pueden


aplicarse a objetos sin cambiar sus
clases

Arquitectura de Software

Patrones orientados a la creacin

Los
patrones
de
creacin
estn
asociados al proceso de creacin de los
objetos, entre objetos se delegan los
procesos de creacin.

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory
Nombre: Fabricacin Abstracta
Funcin:
Proporciona una interfaz para crear familias
de objetos relacionados o dependientes sin
especificar las clases concretas de las que
son instancia.
Si deseamos que nuestro software funcione
sobre distintos recursos debemos abstraer las
libreras
utilizadas
proporcionando
una
interfaz comn.
Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Motivacin

Consideremos un juego de herramientas


para construir interfaces de usuario que
soporte mltiples estndares look-and-feel.
Diferentes
look-and-feel
definen
diferentes
aspectos (colores, figuras, tipos de letra, etc.) y
comportamientos (botones, mens, barras de scroll,
ventanas, etc.)
Por ejemplo: Motif, Presentation Manager, Open
Window, etc.
Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Motivacin

Una aplicacin que use estas caractersticas no


debera codificar explcitamente la creacin de
objetos especficos del look-and-feel concreto,
pues ello complicara la modificacin posterior
del mismo.
Tampoco es razonable contemplar las distintas
posibilidades
de
look-and-feel
mediante
sentencias condicionales que se repiten cada
vez que se crea un panel o ventana; sera difcil
extender la aplicacin a nuevos look-and-feel.
Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Una solucin ingenua

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Una solucin menos ingenua

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Solucin

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Aplicacin

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Una solucin menos ingenua

Arquitectura de Software

Patrones orientados a la creacin


El patrn Fabrica Abstracta - Abstract Factory -

Arquitectura de Software

Patrones orientados a la creacin


Abstract Factory: Algunas consideraciones

Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Es un patrn de creacin de objetos
Intencin: Asegura que una clase tiene una
nica instancia y proporciona un punto de
acceso global a dicha instancia.
Motivacin:
Hay veces que es importante asegurar que
una clase tenga una sola instancia, por
ejemplo:
Un gestor de ventanas
Una nica cola de
impresin

Un nico sistema de
ficheros

Un nico fichero de log, o


un nico repositorio
Arquitectura de Software

Patrones orientados a la
creacin
Singleton: Singular
Motivacin:

Cmo asegurarlo? Una variable global hace


el objeto accesible, pero se puede instanciar
varias veces.
Responsabilidad de la clase misma: actuar
sobre el mensaje de creacin de instancias.

Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Solucin:

Para asegurar que se crea una sola instancia


El constructor de la clase no debe ser pblico.

El almacenamiento de la instancia
Se har en una variable de clase (esttica).

El acceso a dicha variable


Se har a travs de un mtodo de clase (esttico), que
devolver una referencia a la instancia.

La creacin de la instancia
Se har la primera vez que se invoque este mtodo.
Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
El Patrn Singular:

Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular

Singleton: Implementa la instancia nica.


Cliente: Define una operacin instancia para
que el cliente pueda acceder por instancia
nica.
Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Aplicacin:
Se recomienda el uso del patrn Singleton cuando:
El sistema exige exactamente una instancia de
una clase, la cual debe ser accesible para los
clientes desde un punto de acceso bien definido.
La nica instancia debe ser extendida a subclases
y los clientes deben ser capaces de usarla sin
modificar su cdigo.

Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Consecuencias:
Acceso

controlado a la nica instancia.


Espacio de nombre reducido. Mejora sobre el
uso de variables globales.
Permite el refinamiento de operaciones y la
representacin. Se puede subclasificar de la
clase Singleton y configurar la aplicacin con
una instancia de esta clase.
Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Consecuencias:
Fcil

modificacin para permitir un nmero


variable de instancias.
Ms flexible que las operaciones de clase.

Arquitectura de Software

Patrones orientados a la creacin


Singleton: Singular
Colaboraciones:
Un

patrn Singleton es frecuentemente


relacionado
y
empleado
en
la
implementacin del patrn Abstract Factory
Fbrica Abstracta-, sobre todo cuando se
trata de una fbrica concreta.

Arquitectura de Software

S-ar putea să vă placă și