Dise O De Comandos
Tabasco
Division Academica de Informatica Y
Sistemas
Diseño de comandos
Profesor:
Hugo de la O Leon
Alumno:
Jonas Segovia Velazquez
Materia:
Interaccion Hombre Maquina
5 semestre
cundacan tabasco 09 de Octubre de 2012
DISEÑO DE COMANDOS
Command (patrón de diseño)
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.
Motivo
●
El concepto de "orden" puede ser ambiguo y complejo en los sistemas actuales y al
mismo tiempo muy extendido: intérpretes de órdenes del sistema operativo, lenguajes de macros de paquetes ofimáticos, gestores de bases de datos, protocolos de servidores de
Internet, etc.
●
Este patrón presenta una forma sencilla y versátil de implementar un sistema basado en
comandos facilitándose su uso y ampliación.
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
Estructura del patrón Command.
Terminología La terminología usada para describir la implementación del patrón orden (command pattern) no
es consistente y puede por tanto ser confusa. Esto resulta de la
ambigüedad
, el uso de
sinónimos
e implementaciones que puede oscurecer el patrón original por ir más alla de él.
1.
Ambigüedad.
a.
El término orden es ambiguo. Por ejemplo: mover arriba; mover arriba puede referirse a una orden simple (mover arriba) que debe ejecutarse por dos veces, o
puede referirse a dos órdenes, cada una de las cuales ocurre que hace lo mismo
(mover arriba). Si la primera version de la orden es añadida por dos veces en una
pila de retrotracción (undo stack), ambos items en la pila se refieren a la misma
instancia de la orden. Esto puede ser apropiado cuando un comando puede ser siempre retrotraído del mismo modo(p.ej: mover abajo). Tanto la
Banda de los
cuatro
(Gang of Four) como el
ejemplo Java de aquí abajo
usan esta
interpretación del término orden. Por otro lado, si la interpretación posterior es lo
que se añade a la pila de retrotracción, la pila se refiere a dos objetos separados.
Esto puede ser apropiado cuando cada objeto en la pila debe contener información que permita al comando ser retrotraido (deshecho). Por ejemplo, para retrotraer
una orden de borrar selección, la orden debe contener una copia del texto
eliminado tal que pueda ser reinsertado si la orden de borrar selección debe ser
retrotraída. Nótese que usar un objeto separado por cada invocación de la orden es
también un ejemplo del
patrón cadena de responsabilidades
.
b. El término ejecutar también es ambiguo. Se puede referir a la ejecución del
código identificado por el método ejecutar del objeto orden. Sin embargo en
Windows Presentation Foundation
de Microsoft una orden se considera ejecutada
cuando el método ejecutar de la orden ha sido invocado, pero no significa
necesariamente que el código de la aplicación haya sido ejecutado. Eso ocurre ...
Regístrate para leer el documento completo.