miércoles, 4 de mayo de 2016

PATRÓN COMPOSITE

PATRÓN COMPOSITE
Objetivo:
·         Componer objetos en estructuras de árbol para representar jerarquías.
·         Manipular todos los objetos del árbol de manera uniforme.

¿Para qué sirve?
El patrón Composite 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.
Este útil patrón permite crear y manejar estructuras de objetos en forma de árbol, en las que un objeto puede contener a otro(s).

¿Se debe utilizar Composite cuándo?
·         Se busca que el cliente puede ignorar la diferencia entre objetos primitivos y compuestos (para que pueda tratarlos de la misma manera).
·         Se quiere combinar objetos en estructuras de árbol para representar jerarquías de parte-todo.

Diagrama UML ¨Patrón Composite¨

  • Component: implementa un comportamiento común entre las clases y declara una interface de manipulación a los padres en la estructura recursiva.
  • Leaf: representa los objetos “hoja” (no poseen hijos). Define comportamientos para objetos primitivos.
  • Composite: define un comportamiento para objetos con hijos. Almacena componentes hijos, implementa operaciones de relación con los hijos.

Consecuencias
  •  Define jerarquías de clases hechas de objetos primitivos y compuestos.
  • Si el código cliente espera un objeto simple, puede recibir también uno compuesto z Simplifica el cliente.
  • Objetos simples y compuestos se tratan homogéneamente z Facilita la incorporación de nuevos tipos de componentes z Puede hacer el diseño demasiado general.
  • Es complicado restringir el tipo de componentes de un composite.

       Ejemplo:
             Vamos a realizar un ejemplo de un Banco. Un banco puede tener muchos sectores
  •      Gerencia.                 
  •      Administrativo. 
  •      RRHH. 
  •      Cajas. 

    Cada uno de estos sectores tendrá empleados que cobran un sueldo. En nuestro caso utilizaremos el Composite para calcular la sumatoria de sueldos de la empresa. 
      En el siguiente link, encontraras la implementación del patrón COMPOSITE  aplicado al ejemplo anteriormente planteado.
       https://github.com/rafaelnunez/TAcomposite


      Referencias bibliográficas:     

0 comentarios:

Publicar un comentario