(Composite)
• Pablo Torres
• Fabián Yuquilema
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.
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.
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.
Vista diagrama general del patrón Composite.
EJEMPLO:
• UN SISTEMA GRAFICO:
• 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.
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)
Bibliografía
•   http://dmi.uib.es/people/yuhua/TAP06-07/3.3.pdf

•   http://es.wikipedia.org/wiki/Composite_(patr%C3%B3n_de_dise%C3%B1o)

•   http://siul02.si.ehu.es/~alfredo/iso/06Patrones.pdf

•   http://patronesdediseno.blogspot.com/2009/05/patron-composite.html

•   http://chuidiang.blogspot.com/2005/10/el-patrn-composite.html

•   http://www.apuntes.delibertad.com/java/patron-composite/ - EJEMPLO

patron composite

  • 1.
  • 2.
    DESCRIPCION: • Este patrónse 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.
  • 5.
    Vista diagrama generaldel patrón Composite.
  • 6.
  • 7.
    • La subclasecompuesta 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 unajerarquí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)
  • 9.
    Bibliografía • http://dmi.uib.es/people/yuhua/TAP06-07/3.3.pdf • http://es.wikipedia.org/wiki/Composite_(patr%C3%B3n_de_dise%C3%B1o) • http://siul02.si.ehu.es/~alfredo/iso/06Patrones.pdf • http://patronesdediseno.blogspot.com/2009/05/patron-composite.html • http://chuidiang.blogspot.com/2005/10/el-patrn-composite.html • http://www.apuntes.delibertad.com/java/patron-composite/ - EJEMPLO