¿Qué 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 Command Design pattern [wikipedia] pero no puedo encontrar ningún recurso en él.¿Qué es el patrón de diseño de acción?
Respuesta
Tiene 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.
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 de Excel, deshacer/rehacer en editores de texto, etc.
clase Action, que es un bloque de construcción en este patrón de diseño puede ser diseñado 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 que ayude.
Estoy leyendo "The Action/Executor Pattern" 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.
partir de la descripción de la Command Pattern en SourceMaking.com:
- encapsular una solicitud como un objeto, permitiendo de ese modo que la parametrización de clientes con diferentes solicitudes, cola o registrar solicitudes, y apoyar las operaciones se pueden deshacer.
- Promover "la invocación de un método en un objeto" a la condición de objetos completo
- Una devolución de llamada
Desde el artículo de MSDN sobre el patrón Acción/Ejecutor orientado a objetos:
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 una o varias etapas, que cuando se realiza con éxito delegar el control a otro objeto responsable de saber cómo conservar esos cambios en una base de datos, servicio web o un archivo de almacenamiento. La acción está desacoplada de cómo se ejecuta/persiste.
Un "comando" se siente como la mitad del patrón 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.
- 1. ¿Qué es el patrón de diseño fantasma?
- 2. ¿Qué es el patrón de diseño "Dispatcher"?
- 3. ¿Qué patrón de diseño es este?
- 4. ¿qué es el patrón de diseño de objeto de contexto?
- 5. ¿Qué patrón de diseño es el más apropiado?
- 6. ¿Qué patrón de diseño elegirás?
- 7. ¿Qué es el "patrón compuesto"?
- 8. ¿Qué patrón de diseño es el opuesto al patrón de fábrica?
- 9. ¿Qué es un patrón de diseño de fábrica en PHP?
- 10. ¿Qué patrón de diseño de versiones recomendaría?
- 11. ¿Qué es este patrón de diseño? ¿Cómo usarlo?
- 12. ¿Es este un patrón de diseño?
- 13. ¿Es este un patrón de diseño común? "Patrón de descriptor"?
- 14. Eventos y delegados. ¿Qué patrón de diseño?
- 15. ¿Qué patrón de diseño utiliza Codeigniter?
- 16. patrón de diseño de envío?
- 17. Patrón de diseño DAO
- 18. Patrón de diseño de trabajador
- 19. Recomiende un patrón de diseño
- 20. Diseño de patrón "Fachada"
- 21. F # patrón de diseño
- 22. ¿El patrón de diseño del prototipo es realmente justo?
- 23. fábrica patrón de diseño método
- 24. correctamente usando el patrón de diseño Singleton
- 25. Patrón de diseño de validación
- 26. ¿Qué es el diseño automático?
- 27. ¿Qué es System.Lazy <T> y el patrón de diseño Singleton
- 28. Frustraciones del patrón de diseño
- 29. Diseño Patrón: Constructor
- 30. ¿En qué se diferencia el patrón MVC, si es que lo hace, del patrón de diseño DAL/BLL?