PATRON COMMAND

Motivación:
Este patrón presenta una forma sencilla y versátil de implementar un sistema basado en comandos facilitándose su uso y ampliación, puesto que a veces se quiere poder enviar solicitudes a objetos sin conocer exactamente la operación solicitanda ni del receptor de la solicitud.  En general un objeto botón o menú ejecuta solicitudes pero
la solicitud no está implementada dentro del mismo.
La clave de este patrón es una clase abstracta Command que define una operación execute. Son las subclases concretas quienes implementan la operación y especifican el receptor de la orden.
Estructura:
Participantes:
  • Command.

Ofrece un interfaz para la ejecución de órdenes. Define los métodos do y undo que se implementarán en cada clase concreta.

  • ConcreteCommand.

Clase que implementa una orden concreta y sus métodos do y undo. Su constructor debe inicializar los parámetros de la orden.

  • Invoker.

Clase que instancia las órdenes, puede a su vez ejecutarlas inmediatamente (llamando a do) o dejar que el Receiver lo haga.

  • Receiver.

Responsable de gestionar una colección de objetos orden creadas por el Invoker. llamará a los métodos doIt y unDoIt.  Gestionará su secuenciación y reordenación (sobre la base de prioridades por ejemplo).

  • Client.

Crea un objeto ConcreteCommand y lo relaciona con su Receiver.

Referencias:

No hay comentarios:

Publicar un comentario