Mind map
COMAND
Map content
COMAND
En programación orientada a objetos, Command es un patrón de comportamiento.
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.
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.
- Desarrollar sistemas utilizando órdenes de alto nivel que se construyen con operaciones sencillas (primitivas)
- Soportar el "deshacer".
Participantes
- CommandManager.
- Responsable de gestionar una colección de objetos orden creadas por el Invoker. llamará a los métodos do y unDo. Gestionará su secuenciación y reordenación (sobre la base de prioridades por ejemplo).
- Invoker.
- Clase que instancia las órdenes, puede a su vez ejecutarlas inmediatamente (llamando a do) o dejar que el CommandManager lo haga.
- ConcreteCommand.
- Clase que implementa una orden concreta y sus métodos do y undo. Su constructor debe inicializar los parámetros de la orden.
- AbstractCommand.
- Clase que ofrece una interfaz para la ejecución de órdenes. Define los métodos do y undo que se implementarán en cada clase concreta
- 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
- Las clases Button y MenuItem de Java facilitan la utilización de este patrón, declaran los métodos getActionCommand y setActionCommand para dar nombres a las acciones realizadas por los objetos, facilitándose una correspondencia entre ambos.
Information
- Description
- Mind Map on COMAND, created by katerineherrera1 on 20/03/2015.
- Created by
- katerineherrera1
- Views
- 0
- Rating