什么是行为设计模式?我以前没有听说过。我怀疑它与命令设计模式 [维基百科] 相同,但我找不到任何相关资源。
你说的没错,动作模式等同于命令模式。在 GUI 设计中,更常被称为动作模式,例如:“当某个按钮被按下时,执行此操作”。在代码中,该按钮将与某种类型的动作对象相连。
我现在正在阅读MSDN上的 "Action/Executor Pattern",我必须不同意命令(Command)和Action/Executor模式是相同的这一前提。
从SourceMaking.com关于Command Pattern的描述中:
- 将请求封装为对象,从而使您能够使用不同的请求对客户端进行参数化,排队或记录请求,并支持可撤消操作。
- 将“在对象上调用方法”的调用提升到完整的对象状态
- 面向对象的回调
从MSDN文章中关于Action/Executor模式的描述:
区别在于“操作”封装了一个或多个步骤,成功执行这些步骤后会将控制权委托给另一个负责知道如何将这些更改持久化到数据库、Web服务或文件存储的对象。操作与其如何执行/持久化是分离的。Action/Executor模式识别了一种将用例映射到代码的策略,从而实现更好的可见性和敏捷性。此外,它解决了污染实体和跳过事务的正确使用的问题。
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){}
}