Command

Propósito

Según el libro "Patrones de Diseño" [29] el patrón Command "encapsula una petición en un objeto, permitiendo así parametrizar a los clientes con diferentes peticiones, hacer cola o llevar registro de las peticiones, y poder deshacer las operaciones".

También conocido como

Action, Transaction

Estructura

Participantes

  • Orden:

    • declara una interfaz para ejecutar una operación.

  • Orden Concreta:

    • define un enlace entre una variable Receptor y una acción.

    • implementa Ejecutar invocando la correspondiente operación u operaciones del Receptor.

  • Cliente:

    • crea una variable OrdenConcreta y establece su receptor.

  • Invocador:

    • le pide a la orden que ejecute la petición.

  • Receptor:

    • sabe cómo llevar a cabo las operaciones asociadas a una petición. Cualquier clase puede actuar como Receptor.

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 poder prender y apagar un televisor mediante la invocación de comandos mediante un control remoto.

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?