design-patterns - software - patrones de diseño pdf
¿Cuál es el patrón de diseño de acción? (3)
Tienes razón, patrón de acción == patrón de comando. Lo oyes llamar el patrón de acción más a menudo en el diseño de la GUI, en la forma "en algún botón presionado, realiza esta acción". En el código, el botón estaría conectado con un objeto de acción de algún tipo.
¿Cuál es el patrón de diseño de acción, no he oído hablar de él antes? Sospecho que es lo mismo que el patrón de Command Design [wikipedia] pero no puedo encontrar ningún recurso en él.
El patrón de diseño de acción es el mismo que el patrón de diseño de comando. La acción es una entidad clave, que encapsula información en sí misma con respecto a su comportamiento, qué procesamiento debe hacerse en su método do (), cómo se puede deshacer, y así sucesivamente. Cuando una aplicación o cualquiera de sus componentes se diseña de acuerdo con el patrón de diseño de Acción, entonces toda la actividad en la aplicación se puede representar en forma de acción, cada cosa se puede rehacer / deshacer varias veces. P.ej. Macros en excel, deshacer / rehacer en editores de texto, etc.
La clase de acción, que es un bloque de construcción en este patrón de diseño se puede diseñar de la siguiente manera:
public interface Action{
public void do();
public void undo();
public void do(int iNoOfTimes);
}
public class FileCopyAction implements Action{
private int iActionId;
public void do(){}
public void undo(){}
public void do(int iNoOfItems){}
}
Espero eso ayude.
Estoy leyendo " El patrón Acción / Ejecutor " en MSDN en este momento, y tengo que estar en desacuerdo con la premisa de que los patrones de Comando y Acción / Ejecutor son los mismos.
De la descripción del patrón de comando en SourceMaking.com:
- Encapsule una solicitud como un objeto, lo que le permite parametrizar clientes con diferentes solicitudes, solicitudes de cola o registro, y soporte de operaciones que se pueden deshacer.
- Promover "invocación de un método en un objeto" al estado de objeto completo
- Una devolución de llamada orientada a objetos
Del artículo de MSDN sobre el patrón Acción / Ejecutor:
El patrón Acción / Ejecutor identifica una estrategia para mapear casos de uso al código, lo que permite una mejor visibilidad y agilidad. Además, aborda los problemas de las entidades contaminantes y omite el uso adecuado de las transacciones.
La diferencia parece ser que una "acción" encapsula uno o más pasos, que cuando se realizan con éxito delegan control en otro objeto responsable de saber cómo mantener esos cambios en una base de datos, servicio web o almacenamiento de archivos. La acción está desacoplada de cómo se ejecuta / persiste.
Un "comando" se siente como la mitad del patrón de Acción / Ejecutor, la "acción" parece sinónimo de un "comando". El patrón Acción / Ejecutor va un paso más allá y describe otra preocupación cuya responsabilidad es tomar los cambios generados por la "acción" o "comando" y guardarlos en algún lugar.