Ejemplos de uso: El patrón Command es muy común en el código Java. La mayoría de las veces se utiliza como alternativa a las retrollamadas (callbacks) para parametrizar elementos UI con acciones. También se utiliza para poner tareas en cola, realizar el seguimiento del historial de operaciones, etc.
Aquí tienes algunos ejemplos del patrón Command en las principales bibliotecas Java:
Identificación: Si ves un grupo de clases relacionadas que representan acciones específicas (como “Copiar”, “Cortar”, “Enviar”, “Imprimir”, etc.), puede que se trate de un patrón Command. Estas clases deben implementar la misma interfaz/clase abstracta. Los comandos pueden implementar las acciones relevantes por su cuenta, o delegar el trabajo a objetos separados, que serían los receptores. La última pieza del rompecabezas es identificar una invocadora: busca una clase que acepte los objetos de comando de los parámetros de sus métodos o constructor.
Comandos de editor de texto y deshacer
El editor de texto de este ejemplo crea nuevos objetos de comando cada vez que un usuario interactúa con él. Tras ejecutar sus acciones, un comando es empujado a la pila del historial.
Ahora, para realizar la operación deshacer (undo), la aplicación toma el último comando ejecutado del historial y, o bien realiza una acción inversa, o bien restaura el pasado estado del editor guardado por ese comando.
commands
commands/Command.java: Comando base abstracto
commands/CopyCommand.java: Copiar el texto seleccionado en el portapapeles
commands/PasteCommand.java: Pegar texto desde el portapapeles
commands/CutCommand.java: Cortar texto al portapapeles
commands/CommandHistory.java: historial del comando