2. DESCRIPCION:
• Este patrón se usa cuando se quiere componer objetos en
estructuras tipo Árbol para representar su jerarquización, y
permitir al usuario tratar los objetos tanto individual como
grupalmente de manera uniforme basado en una
composición recursiva.
• 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.
3. Problema que soluciona:
• Cuando desarrollar una aplicación como un editor de
dibujos y sistemas de circuitos que permiten a los usuarios
constituir diagramas complejos desde componentes
simples. (Interfaces Graficas)
• Los objetos simples(hojas) y los contenedores de ellos
están en diferentes maneras, aunque los clientes tratan
ambos en la misma manera.
• La clave del patrón Composite:
– Una clase abstracta que representa ambos objetos los
simples(hojas) y sus contenedores.
4. DIAGRAMA DE CLASES:
• Componente: declara la interfaz para los objetos en la composición, implementa
comportamientos por defecto comunes para todas las clases
apropiadamente, declara una interfaz para acceso y manejo de sus
componentes Hijo.
• Hoja: representa objetos de la composición que no poseen hijos, define un
comportamiento para objetos simples.
• Compuesto: define el comportamiento de los objetos que poseen hijos, guarda
los mismos, e implementa operaciones relacionadas con los hijos en la interfaz
del Componente.
7. • La subclase compuesta DIBUJO define una agregación de
objetos de grafico.
– Implementa Dibujar() para que llame a dibujar a sus hijos.
– Implementa operaciones para administrar a sus hijos.
– Una estructura de componer objetos compuestos
recursivamente.
8. Conclusiones:
• Define una jerarquía de clases con objetos simples y
compuestos.
• Simplifica las tareas del cliente. Puede tratar un compuesto
como un objeto simple.
• Puede añadir nuevos componentes sin modificar la
estructura ni los códigos de clientes.
• Desventajas:
– El diseño del programa puede ser demasiado general.
– Difícil restringir los componentes de un compuesto (Seguridad)