0

我正在使用命令模式开发应用程序。我的程序中有两种操作:1.长时间操作(复制/删除文件),应该异步运行 2.简单操作(刷新面板)

我的问题是:我可以在这个模式中实现 2 种命令(AsyncCmd 和 SimpleCmd)吗?在命令管理器中执行之前检查命令类型:

public void Execute()
   {
     if(cmd is AsyncCmd)
        {
         RunAsyncOperation();
        }
     else if(cmd is SimpleCmd)
        {
         RunOperation();
        }
   }
4

1 回答 1

2

您可以,但是使用 if else 来定义操作类型会违背命令模式的目的。异步和简单(我猜是同步的)应该是单独的命令,每个命令都继承自 ICommand (它有一个方法 Execute()) 。这些命令应该使用可以处理命令特定上下文的工厂创建,例如您必须为异步操作执行的任何特殊操作等。

于 2012-11-03T20:15:24.213 回答