Patrón de diseño: Decorator - tectijuana/javapdd16a-Archived GitHub Wiki

Propósito

Asigna responsabilidades adicionales a un objeto dinámicamente, proporcionando una alternativa flexible a la herencia para extender la funcionalidad.

Motivación

Cuando es necesario añadir responsabilidades a objetos individuales en vez de a toda una clase. Un modo de añadir responsabilidades es a través de la herencia pero ya que está no es muy flexible al momento de controlar el cómo y cuándo decorar un objeto único. En vez de eso se utiliza un decorador que encierra al objeto y este es el encargado de delegar las operaciones; esto se puede hacer indefinidamente, así agregando más y más responsabilidades.

Aplicación

Se usa el patrón decorador cuando:

  • Se quiere añadir objetos individuales de forma dinámica y transparente.
  • Se quiere tener responsabilidades que pueden ser retiradas.
  • La herencia no es viable.

Estructura

Diagrama el patrón Decorator

Participantes

  • Componente
  • Componente concreto
  • Decorador
  • Decorador concreto

App de Heroku

Aplicación en Heroku

Referencias

Gamma, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.

Freeman, Eric, et al. Head first design patterns. " O'Reilly Media, Inc.", 2004.