Sie sind auf Seite 1von 24

Arquitectura de Software

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

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

Patrones de
diseo
Adapter -

Aspectos que pueden


variar
La interfaz de un objeto

Adaptador

Bridge -

Puente

Composite -

La estructura y composicin
de un objeto

Compuesto

Estructural Decorator es
Decorador

Facade -

Las responsabilidades de un
objeto sin usar la herencia

Fachada

Flyweight -

La implementacin de un
objeto

La interfaz de un subsistema

Ligero

El coste de almacenamiento
de los objetos

Proxy -

Arquitectura
de Software
Cmo
se accede
a un objeto;

Peso

Patrones Estructurales

Los patrones estructurales tratan la


composicin de clases u objetos; para lo
cual hacen uso de dos recursos,
dependiendo del tipo de composicin,
es decir que para clases es necesaria la
herencia mientras que para los objetos
se describen formas de ensamblar
objetos.
Arquitectura de Software

Patrones Estructurales
Adapter -AdaptadorNombre: Adaptador
Funcin:
Adaptar una interface para que pueda ser
utilizada por una clase que de otro modo
no podra utilizarla.
Se
puede aplicar cuando se desea
reutilizar una clase existente, pero su
interfaz no concuerda con lo que se
necesita.
Arquitectura de Software

Patrones Estructurales
Adapter -AdaptadorMotivacin:
Se est desarrollando un editor de dibujos
que permite realizar diagramas a partir d
elementos grficos como lneas, crculos,
texto, etc.
Un elemento fundamental de dicho sistema
es la clase ObjetoGrfico, que proporciona
operaciones para modificar su forma
(editar()) y para representarlo (dibujar()).
Arquitectura de Software

Patrones Estructurales
Adapter -AdaptadorMotivacin:
Esta clase se especializa para cada tipo de
objeto grfico: Lnea, Crculo, etc., clases
donde se han implementado adecuadamente
dichas operaciones.
Sin embargo, la edicin y representacin de
textos es una tarea complicada, por lo que se
desea reutilizar la clase Text de la biblioteca
de clases del entorno de programacin.
Arquitectura de Software

Patrones Estructurales
Adapter -AdaptadorMotivacin:
No obstante, la interfaz de Text (con
operaciones como edit() y draw()) no se
corresponde con la declarada por
ObjetoGrfico.
Por este motivo, se necesita desarrollar
una clase Texto (adaptador) que adapte
la clase Text (adaptada) a la interfaz
declarada por ObjetoGrfico (objetivo).
Arquitectura de Software

Patrones Estructurales
Adapter -Adaptador- : Motivacin

Arquitectura de Software

Patrones Estructurales
Adaptador: Versin para instancias

Arquitectura de Software

Patrones Estructurales
Adaptador: Versin para clases

Arquitectura de Software

Patrones Estructurales
El Patrn Adaptador

Arquitectura de Software

Patrones Estructurales
Adaptador: Algunas consideraciones

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoNombre: Compuesto
Funcin:
Manejar objetos compuestos como si se
tratasen de un simple, en forma de rbol.
Tambin
permite
manipular
consistentemente los objetos en el rbol,
pidiendo que todos los objetos en el rbol
tengan una superclase o interfaz comn.
Arquitectura de Software

Patrones Estructurales
Composite -CompuestoMotivacin:
Aplicaciones

grupos
uniforme.

grficas. Manipulacin de
de
figuras
de
manera

Arquitectura de Software

Patrones Estructurales
El Patrn Compuesto

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoAplicabilidad: Usar el patrn cuando:
Se
quieren
representar
jerarquas
todo/parte de objetos.
Se quiere que los clientes ignoren la
diferencia entre composiciones de objetos
y objetos individuales. Los clientes
tratarn todos los objetos en la estructura
compuesta de manera uniforme.
Arquitectura de Software

Patrones Estructurales
El Patrn Compuesto

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoParticipantes:
AbstractComponent

(Grafico).

Declara la interfaz de los objetos de la composicin.


Implementa el comportamiento por defecto de la
interfaz comn a todas las clases.
Declara las interfaces para acceder y gestionar los
hijos.

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoParticipantes:
ConcreteComponent

(Linea, Rectangulo,

).
Representa objetos hoja en la composicin. Una
hoja no tiene hijos.
Define el comportamiento de los objetos primitivos
en la composicin.

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoParticipantes:
AbstractComposite

(Dibujo).

Define el comportamiento de los objetos con hijos


en la composicin.
Almacena componentes hijo.
Implementa operaciones relacionadas con los hijos
de la interfaz de AbstractComponent.

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoParticipantes:
Client

(Cliente).

Manipula objetos en la composicin a travs de la


interfaz de AbstractComponent.

Arquitectura de Software

Patrones Estructurales
Composite -CompuestoColaboraciones:
Los

clientes usan el interfaz de la clase


AbstractComponent para interaccionar con los
objetos de la estructura compuesta.
Si el objeto es hoja, entonces la peticin se
cursa directamente.
Si el objeto es un AbstractComposite, entonces
normalmente redirige las peticiones a sus
objetos hijo, quiz realizando operaciones
adicionales antes y/o despus de la redireccin.
Arquitectura de Software

Patrones Estructurales
Composite -CompuestoConsecuencias: El patrn composite:

Define jerarquas de objetos primitivos y compuestos.


Cuando un cdigo cliente espera un objeto simple, se
puede reemplazar por uno compuesto.
Simplifica el cliente. Se pueden tratar objetos simples
y compuestos de manera uniforme.
Facilita aadir nuevos tipos de componente.
Puede hacer el diseo demasiado general.
Complicado restringir los tipos de componente de un
composite.
Arquitectura de Software

Das könnte Ihnen auch gefallen