Intención
Este patrón permite solicitar una operación a un objeto sin conocer
realmente el contenido de esta operación, ni el receptor real de la misma. Para
ello se encapsula la petición como un objeto, con lo que además se facilita la
parametrización de los métodos.También conocido
Acción (action), transacción (Transaction).
Propósito
- Encapsula un mensaje como un objeto, con lo que permite gestionar colas o registro de mensaje y deshacer operaciones.
- Soportar restaurar el estado a partir de un momento dado.
- Ofrecer una interfaz común que permita invocar las acciones de forma uniforme y extender el sistema con nuevas acciones de forma más sencilla.
Aplicaciones
- Facilitar la parametrización de las acciones a realizar.
- Independizar el momento de petición del de ejecución.
- Implementar CallBacks, especificando que órdenes queremos que se ejecuten en ciertas situaciones de otras órdenes. Es decir, un parámetro de una orden puede ser otra orden a ejecutar.
- Soportar el "deshacer".
- Desarrollar sistemas utilizando órdenes de alto nivel que se construyen con operaciones sencillas (primitivas).
Estructura
Participantes
- AbstractCommand.
- ConcreteCommand.
- Invoker.
- CommandManager.
Consecuencias
- Se independiza la parte de la aplicación que invoca las órdenes de la implementación de los mismos.
- Al tratarse las órdenes como objetos, se puede realizar herencia de las mismas, composiciones de órdenes (mediante el patrón Composite).
- Se facilita la ampliación del conjunto de órdenes.
Usos conocidos
No hay comentarios:
Publicar un comentario