问题 什么是行动设计模式?


什么是动作设计模式,我以前没有听说过它?我怀疑它和它一样 命令设计模式 [维基百科],但我找不到任何资源。


2728
2017-12-19 11:28


起源



答案:


你是对的,动作模式==命令模式。您可以在GUI设计中更频繁地听到它称为动作模式,其形式为“按下某个按钮,执行此操作”。在代码中,按钮将与某种动作对象连接。


12
2017-12-19 11:48





我正在阅读 ”动作/执行者模式“现在在MSDN上,我不同意Command和Action / Executor模式相同的前提。

从描述中 命令模式 在SourceMaking.com:

  • 将请求封装为对象,从而允许您使用不同的请求,队列或日志请求参数化客户端,并支持可撤销操作。
  • 将“对象上的方法调用”提升为完整对象状态
  • 面向对象的回调

从MSDN有关Action / Executor模式的文章:

Action / Executor模式标识了将用例映射到代码的策略,从而提高了可见性和灵活性。此外,它还解决了污染实体和跳过正确使用交易的问题。

差异似乎是“动作”封装了一个或多个步骤,当执行成功时,将控制委托给另一个负责知道如何将这些更改持久保存到数据库,Web服务或文件存储的对象。该操作与执行/持久化的方式分离。

“命令”感觉就像Action / Executor模式的一半 - “action”似乎与“command”同义。 Action / Executor模式更进一步,并描述了另一个问题,其职责是采取“动作”或“命令”生成的更改并将它们保存到某个位置。


1
2018-03-03 20:21





动作设计模式与Command设计模式相同。 Action是一个关键实体,它自身封装信息,包括它的行为,必须对其do()方法进行哪些处理,如何撤消,等等。当应用程序或其任何组件按照Action设计模式设计时,应用程序中的Everything活动可以以动作的形式表示,每个事物都可以重做/撤消几次。例如。 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){}
}

希望能帮助到你。


0
2017-11-05 07:38