Decorator

Propósito

Según el libro "Patrones de Diseño" [29] el patrón Decorator "asigna responsabilidades adicionales a un objeto dinámicamente, proporcionando una alternativa flexible a la herencia para extender la funcionalidad".

También conocido como

Wrapper (Envoltorio)

Estructura

Participantes

  • Componente:

    • define la interfaz para variables a las que se puede añadir responsabilidades dinámicamente.

  • ComponenteConcreto:

    • define una variable a la que se pueden añadir responsabilidades adicionales.

  • Decorador:

    • mantiene una referencia a una variable Componente y define una interfaz que se ajusta a la interfaz del Componente.

  • DecoradorConcreto:

    • añade responsabilidades al componente.

Implementación

No se observan impedimentos y/o modificaciones de la estructura original del patrón para su implementación en Go.

Código de ejemplo

En este ejemplo queremos agregarle dinámicamente ingredientes adicionales a un café que por defecto viene simple.

Implementación:

Se puede probar la implementación del patrón de la siguiente forma:

Código de ejemplo | Ejecutar código

Atención: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en https://leanpub.com/designpatternsingo

Última actualización

¿Te fue útil?