jueves, 28 de mayo de 2009
Command

Command encapsula una petición en un objeto, pudiéndo realizar operaciones como crear una cola de objetos, gestionarla y poder deshacer las operaciones.

Características generales de este patrón:

Nombre:

Command.

También conocido como:

Action, Transaction.

Propósito:

Especifica una forma simple de separar la ejecución de un comando del entorno que generó dicho comando.

Aplicabilidad:

Este patrón se utiliza generalmente cuando se desea:

· Facilitar la parametrización de las acciones a realizar.

· Independizar el momento de petición del momento de ejecución.

· Implementar CallBacks. El parámetro de una orden puede ser otra orden a ejecutar. 

· Soportar o permitir el "deshacer". 

· Desarrollar sistemas utilizando órdenes de alto nivel que se construyen con operaciones sencillas (primitivas).

Estructura:

Participantes:

· Command: Declara una interfaz para ejecutar una operación.

· ConcreteCommand: Define un enlace entre un objeto “Receiver” y una acción. Implementa “Execute” invocando las correspondientes operaciónes del “Receiver”.

· Invoker: Le pide a la orden que ejecute la petición.

· Receiver: Sabe como llevar a cabo las operaciones asociadas a una petición. Cualquier clase puede actuar como “Receiver”.

· Client: Crea un objeto “ConcreteCommand” y establece su receptor.

Consecuencias:

· Comando desacopla a los objetos que invocan la operación del objeto que sabe como realizarla.

· Los comandos pueden ser extendidos.

· Es fácil agregar nuevos comandos porque no hay que cambiar las clases existentes.

Patrones relacionados:

· Factory Method.

· Intérprete.

· Template Method.

· Composite.

· Prototype.

Etiquetas: , ,

 
posted by Camilo Mojica at 22:25 | Permalink |


0 Comments: