[go: up one dir, main page]

0% encontró este documento útil (0 votos)
74 vistas11 páginas

Patrón Composite: Diseño y Aplicación

El patrón Composite permite componer objetos en estructuras de árbol jerárquicas para representar relaciones parte-todo. Los objetos simples (hojas) y compuestos (nodos) implementan la misma interfaz para que el cliente los trate de forma uniforme. Esto simplifica el código del cliente al ignorar si trata con objetos individuales o composiciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas11 páginas

Patrón Composite: Diseño y Aplicación

El patrón Composite permite componer objetos en estructuras de árbol jerárquicas para representar relaciones parte-todo. Los objetos simples (hojas) y compuestos (nodos) implementan la misma interfaz para que el cliente los trate de forma uniforme. Esto simplifica el código del cliente al ignorar si trata con objetos individuales o composiciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

PATRON DE DISEÑO

COMPOSITE
INTEGRANTES:
MIGUEL ANGEL AGREDA CATORCENO
JOSÉ RODRIGO SANDOVAL CHAVEZ
IVAN ALFREDO VACA VARGAS
INTRODUCCION

• El patrón Coomposite sirve para construir objetos complejos a partir


de otros más simples y similares entre sí. Gracias a la composición
recursiva y a una estructura en forma de árbol.

• Esto simplifica el tratamiento de los objetos creados, ya que al poseer


todos ellos una interfaz común, se tratan todos de la misma manera.
PROPOSITO

• Componer objetos en estructuras de árbol para representar jerarquías todo


parte. El patrón permite a los clientes tratar a los objetos individuales y a las
composiciones de objetos uniformemente.
• Podemos equipar este patrón a un panal y sus celdas. Cada objeto simple
(celda) puede relacionarse con otros formando una estructura más compleja
(panal).
ESTRUCTURA

• El patrón Composite es un patrón estructural.

• Los patrones estructurales se refieren a como se


componen las clases y objetos para formar
estructuras más grandes.

• Los patrones de objetos estructurales definen


formas de componer objetos para obtener
nuevas funcionalidades.
DIAGRAMA DE CLASES DEL COMPOSITE
PARTICIPANTES
• Componente (Component) Generalmente es una interface
o clase abstracta que tiene las operaciones mínimas que
serán utilizadas, este componente deberá ser extendido por
los otros dos componentes Leaf y Composite.
• Hoja(Leaft) El leaf u hoja, representa la parte más simple o
pequeña de toda la estructura y ésta hereda de Component.
Leaf recibe su nombre de la teoría de árboles, donde se le
nombra así a todo nodo que no tiene descendencia, en este
caso son clases simple que no están compuestas de otras.
• Composite Este componente es el que le da vida al patrón
de diseño ya que este objeto está conformado por un
conjunto de Component y Leaf. En teoría de árboles este
componente representaría una rama.
• Cliente Manipula los objetos de la composición a través de
la interfaz.
COLABORACIONES
Cliente usa el interfaz de
componente para interactuar con
objetos en la estructura de
composite.
• Si el receptor es una hoja,
entonces la petición es manejada
directamente.
• Si el receptor es un Composite,
lanza la petición a sus hijos.
APLICABILIDAD

El patrón composite se usa cuando:


• Cuando se quieren representar
jerarquías de objetos.
• Cuando queremos que los clientes
puedan ignorar la diferencia entre
composiciones de objetos y objetos
individuales.
IMPLEMENTACION
Algunas recomendaciones para implementación del patrón son las siguientes.
• Referencia explicitas a los padres. Con ello se simplifica algunas operaciones de la
estructura compuesta. Lo mejor es definirlas en la clase Componente. Gestionarlas al
añadir/eliminar elementos de un Composite.
• Compartir Componentes: Es muy útil por el ahorro de memoria que supone. La gestión del
componente con varios padres puede llegar a ser compleja.
• Maximizar la Interfaz del Componente: Dar un comportamiento por defecto que
sobrescribirán las subclases.
•  Orden de los hijos: En ocasiones los hijos representan un orden, y hay que tenerlo en cuanta
para la implementación.
• Declaración de las operaciones de manejo de hijos: Definirlas en la raíz Componente y
darle una implementación por defecto permite aumentar la transparencia, pero se pierde
seguridad (¿Cómo evitar que añada/elimine objetos a una hoja?). Si las definimos en clase
Composite se obtiene más seguridad pero se pierde transparencia al no existir una interfaz
uniforme.
VENTAJAS
• Define jerarquías de clase que consisten en objetos simples y en
composiciones de esos objetos: Los objetos simples pueden ser
compuestos en objetos más complejos que a su vez puede ser
compuestos por otros objetos compuestos y así recursivamente. En
cualquier lugar del código del cliente donde se necesite un objeto
simple, también se podrá usar un objeto compuesto.
• Hace al cliente más simple: Los clientes pueden tratar los objetos
simples y compuestos uniformemente. Los clientes normalmente no
saben (y no les debería importar) si están tratando con una hoja (Leaf) o
con un objeto Composite. Esto simplifica el código del cliente.
• Hace más fácil añadir nuevos tipos de componentes: Si se define una
nueva clase Leaf o Composite, esta funcionara automáticamente con la
estructura que ya estaba definida y el cliente no tendrá que cambiar.
 
DESVENTAJAS

• Puede hacer nuestro diseño demasiado


general: La desventaja de hacer más fácil
añadir nuevos componentes es que también
hace más difícil restringir los componentes
de una composición. A veces queremos que
una composición tenga solo un
determinado tipo de componentes. Con este
patrón tendríamos que hacer
comprobaciones en tiempo de ejecución.

También podría gustarte