Design patterns 什么是动作设计模式?

Design patterns 什么是动作设计模式?,design-patterns,command-pattern,Design Patterns,Command Pattern,什么是动作设计模式,我以前没听说过?我怀疑它与[wikipedia]相同,但我在上面找不到任何资源。你说得对,动作模式==命令模式。在GUI设计中,您经常听到它以“按下某个按钮,执行此操作”的形式被称为动作模式。在代码中,按钮将与某种类型的动作对象连接。动作设计模式与命令设计模式相同。Action是一个关键实体,它本身封装了有关其行为、必须对其do()方法执行哪些处理、如何撤消等的信息。当应用程序或其任何组件按照动作设计模式进行设计时,应用程序中的所有活动都可以用动作的形式表示,每件事情都可以重

什么是动作设计模式,我以前没听说过?我怀疑它与[wikipedia]相同,但我在上面找不到任何资源。

你说得对,动作模式==命令模式。在GUI设计中,您经常听到它以“按下某个按钮,执行此操作”的形式被称为动作模式。在代码中,按钮将与某种类型的动作对象连接。

动作设计模式与命令设计模式相同。Action是一个关键实体,它本身封装了有关其行为、必须对其do()方法执行哪些处理、如何撤消等的信息。当应用程序或其任何组件按照动作设计模式进行设计时,应用程序中的所有活动都可以用动作的形式表示,每件事情都可以重复/撤消几次。例如excel中的宏、文本编辑器中的撤消/重做等

Action类是此设计模式中的一个构建块,可按如下方式设计:-

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){}
}
希望能有所帮助。

我现在正在MSDN上阅读“”,我不同意命令和操作/执行器模式相同的前提

从SourceMaking.com上的描述中:

  • 将请求封装为对象,从而使您能够参数化具有不同请求的客户端、队列或日志请求,并支持可撤消的操作
  • 将“对象上方法的调用”提升为完全对象状态
  • 一种面向对象的回调函数
从MSDN关于操作/执行器模式的文章中:

Action/Executor模式确定了将用例映射到代码的策略,从而实现更好的可视性和灵活性。此外,它还解决了污染实体和跳过正确使用事务的问题

区别在于“操作”封装了一个或多个步骤,当成功执行时,将控制权委托给另一个负责知道如何将这些更改持久化到数据库、web服务或文件存储的对象。该操作与它的执行/持久化方式分离

“命令”感觉像是动作/执行者模式的一半,“动作”似乎是“命令”的同义词。Action/Executor模式更进一步,描述了另一个关注点,其职责是将“Action”或“command”生成的更改保存到某个地方