24
Arquitectura de Software Ingeniería de Sistemas ITM Unidad 2. Los patrones de diseño en el desarrollo de Software Unidad 2.2 Patrones orientados a la estructura

Patrones Diseño en Dllo SW Arquitectura SW 2 2

Embed Size (px)

DESCRIPTION

Patrones Diseño en Dllo SW Arquitectura SW 2 2

Citation preview

Page 1: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Arquitectura de SoftwareIngeniería de SistemasITMUnidad 2. Los patrones de diseño en el desarrollo de SoftwareUnidad 2.2 Patrones orientados a la estructura

Page 2: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Arquitectura de Software

Los patrones de Diseño en el Desarrollo de Software

Los 23 patrones, mencionados anteriormente, están organizados por dos criterios: Propósito (de creación, estructurales y de

comportamiento). Ámbito (clase y objeto).

Catalogo de patrones de diseño

Page 3: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Arquitectura de Software

Los patrones de Diseño en el Desarrollo de Software

Aspectos de diseño que los patrones de diseño permiten modificar

Propósito Patrones de diseño

Aspectos que pueden variar

Estructurales

Adapter - Adaptador

La interfaz de un objeto

Bridge - Puente La implementación de un objeto

Composite - Compuesto

La estructura y composición de un objeto

Decorator - Decorador

Las responsabilidades de un objeto sin usar la herencia

Facade - Fachada La interfaz de un subsistema

Flyweight - Peso Ligero

El coste de almacenamiento de los objetos

Proxy - Representante

Cómo se accede a un objeto; su ubicación

Page 4: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Los patrones estructurales tratan la composición de clases u objetos; para lo cual hacen uso de dos recursos, dependiendo del tipo de composición, es decir que para clases es necesaria la herencia mientras que para los objetos se describen formas de ensamblar objetos.

Arquitectura de Software

Page 5: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Nombre: AdaptadorFunción:Adaptar una interface para que pueda

ser utilizada por una clase que de otro modo no podría utilizarla.

Se puede aplicar cuando se desea reutilizar una clase existente, pero su interfaz no concuerda con lo que se necesita.

Arquitectura de Software

Adapter -Adaptador-

Page 6: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Motivación:Se está desarrollando un editor de dibujos

que permite realizar diagramas a partir d elementos gráficos como líneas, círculos, texto, etc.

Un elemento fundamental de dicho sistema es la clase ObjetoGráfico, que proporciona operaciones para modificar su forma (editar()) y para representarlo (dibujar()).

Arquitectura de Software

Adapter -Adaptador-

Page 7: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Motivación: Esta clase se especializa para cada tipo de

objeto gráfico: Línea, Círculo, etc., clases donde se han implementado adecuadamente dichas operaciones.

Sin embargo, la edición y representación de textos es una tarea complicada, por lo que se desea reutilizar la clase Text de la biblioteca de clases del entorno de programación.

Arquitectura de Software

Adapter -Adaptador-

Page 8: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Motivación:No obstante, la interfaz de Text (con

operaciones como edit() y draw()) no se corresponde con la declarada por ObjetoGráfico.

Por este motivo, se necesita desarrollar una clase Texto (adaptador) que adapte la clase Text (adaptada) a la interfaz declarada por ObjetoGráfico (objetivo).

Arquitectura de Software

Adapter -Adaptador-

Page 9: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

Adapter -Adaptador- : Motivación

Page 10: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

Adaptador: Versión para instancias

Page 11: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

Adaptador: Versión para clases

Page 12: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

El Patrón Adaptador

Page 13: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

Adaptador: Algunas consideraciones

Page 14: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Nombre: CompuestoFunción:Manejar objetos compuestos como si se

tratasen de un simple, en forma de árbol.También permite manipular

consistentemente los objetos en el árbol, pidiendo que todos los objetos en el árbol tengan una superclase o interfaz común.

Arquitectura de Software

Composite -Compuesto-

Page 15: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Motivación:

Aplicaciones gráficas. Manipulación de grupos de figuras de manera uniforme.

Arquitectura de Software

Composite -Compuesto-

Page 16: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

El Patrón Compuesto

Page 17: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Aplicabilidad: Usar el patrón cuando:Se quieren representar jerarquías

todo/parte de objetos.Se quiere que los clientes ignoren la

diferencia entre composiciones de objetos y objetos individuales. Los clientes tratarán todos los objetos en la estructura compuesta de manera uniforme.

Arquitectura de Software

Composite -Compuesto-

Page 18: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Arquitectura de Software

El Patrón Compuesto

Page 19: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Participantes:

AbstractComponent (Grafico).◦ Declara la interfaz de los objetos de la composición.◦ Implementa el comportamiento por defecto de la

interfaz común a todas las clases.◦ Declara las interfaces para acceder y gestionar los

hijos.

Arquitectura de Software

Composite -Compuesto-

Page 20: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Participantes:

ConcreteComponent (Linea, Rectangulo,…).◦ Representa objetos hoja en la composición. Una

hoja no tiene hijos.◦ Define el comportamiento de los objetos primitivos

en la composición.

Arquitectura de Software

Composite -Compuesto-

Page 21: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Participantes:

AbstractComposite (Dibujo).◦ Define el comportamiento de los objetos con hijos

en la composición.◦ Almacena componentes hijo.◦ Implementa operaciones relacionadas con los hijos

de la interfaz de AbstractComponent.

Arquitectura de Software

Composite -Compuesto-

Page 22: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Participantes:

Client (Cliente).◦ Manipula objetos en la composición a través de la

interfaz de AbstractComponent.

Arquitectura de Software

Composite -Compuesto-

Page 23: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Colaboraciones: 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 petición 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 después de la redirección.

Arquitectura de Software

Composite -Compuesto-

Page 24: Patrones Diseño en Dllo SW Arquitectura SW 2 2

Patrones Estructurales

Consecuencias: El patrón composite: Define jerarquías de objetos primitivos y

compuestos. Cuando un código 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 añadir nuevos tipos de componente. Puede hacer el diseño demasiado general.

Complicado restringir los tipos de componente de un composite.

Arquitectura de Software

Composite -Compuesto-