jueves, 22 de abril de 2010

El patrón de elemento compuesto

Hace algún tiempo hablé del patrón decorador y me quedé con las ganas de comentar otros patrones de diseño. Ahora le voy a hincar el diente al patrón de elemento compuesto que es muy simple y que en parte está relacionado con el decorador.

Cuando hablamos del patrón decorador, también introdujimos (aunque sin mencionarlo) el patrón de elemento compuesto para tener decoradores múltiples sobre un único elemento. Esto puede observarse por la relación de agregación hacia arriba en la jerarquía de clases

Si realmente no necesitamos decorar (es decir, evitar modificar la clase original "concrete component" en el diagrama) podemos eliminar el propio decorador "decorator" y añadir las operaciones directamente.

Como algunas de estas operaciones pueden requerir más de un operando, flexibilizamos el número de la relación de agregación. El resultado es el patrón de compuesto.


Realmente lo que tenemos aquí es similar a lo que teníamos con el decorador. Una interfaz común "component" que puede ser o bien un elemento hoja "leaf" en nuestro árbol de composición o un elemento compuesto "composite" que contiene a otros elementos en él.

A diferencia del patrón decorador, el elemento compuesto es parte del sistema y no un parche posterior. Si tuviéramos que modificar "Leaf", lo cambiaríamos.


0 comentarios:

Publicar un comentario