Patron Command

Introduccion:

Encapsula una peticion en un objeto, permitiendo asi parametrizar a los clientes con distintas peticiones, encolar o llevar un registro de las peticiones y poder deshacer las operaciones.

Nombre del Patron:
Command (Comando).

Clasificacion del Patron:
Patron de Comportamiento.

Intencion:

Encapsular un comando en un objeto de tal forma que pueda ser almacenado, pasado a metodos y devuelto igual que cualquier otro objeto.

Motivacion:

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.
Una biblioteca de clases para interfaces de usuario tendrá objetos como botones y elementos
de menú responsables de realizar alguna operación en respuesta a una entrada del usuario.

Estructura:





Participantes:

Command: Declara la interface para la ejecucion de la operacion.

ConcreteCommand: Define la relación entre el objeto Receiver y una acción, Implemeta Execute() al invocar las operaciones correspondientes en Receiver.

Client: Crea un objeto ConcreteCommand y lo relaciona con su Receiver.

Invoker: Le hace solicitudes al objeto Command.

Receiver: Sabe como ejecutar las operaciones asociadas a la solicitud. Cualquier clase puede ser receptora.

Consecuencias:
  1. Command desliga el objeto invocador del objeto receptor
  2. Los comandos son objetos de primera clase.
  3. Se pueden ensamblar comandos en comandos compuestos.
  4. Para un nuevo comando no se necesita extender las clases.

No hay comentarios:

Publicar un comentario

Hora Bogotá Colombia