Decorator Design Pattern

¿Qué es?

El patrón de diseño Decorator es un objeto para tener la misma forma que el objeto principal. Esto permite que un objeto 'cliente' interactúe con el Decorator exactamente de la misma manera que lo haría con el objeto principal. El objeto Decorator contiene una referencia al objeto real.

¿Para qué se usa?

El patrón de diseño Decorator se utiliza para extender la funcionalidad de un objeto dinámicamente sin tener que cambiar la clase original o utilizando herencia.

Ejemplo

Una compañía de pizza necesita un programa que le permita al usuario agregar más ingredientes a una pizza. Nuestro trabajo es agregar dichos ingredientes y el precio adicional que tendrá la pizza.


Esto es algo como agregar una responsabilidad más a nuestro objeto de pizza en tiempo de ejecución y el patrón de diseño Decorator es adecuado para este tipo de requisitos. 

Diagrama de Clases

Explicación del Diagrama de Clases

  • Component: define la interfaz para objetos que pueden tener responsabilidades añadidas dinámicamente.
  • ConcreteComponent: define un objeto al que se pueden agregar responsabilidades adicionales.
  • Decorador: mantiene una referencia a un objeto Componente y define una interfaz que se ajusta a la interfaz del Componente.
  • ConcreteDecorator(A o B): añade responsabilidades al componente.

Referencias:

  • Design Patterns in Java by CRC Press LLC, 2004.
  • JAVA DESIGN PATTERNS - REUSABLE SOLUTIONS TO COMMON PROBLEMS by Rohit Joshi, 2015.
  • GoF Design Patterns - with examples using Java and UML2 by Logica Java Architects Training Crew, 2008.

  

Decorator Design Pattern

By sebastianvallejoroldan

Decorator Design Pattern

Explicación del Patrón de Diseño Decorador.

  • 482