命令模式中的2种命令

时间:2012-11-03 18:53:29

标签: c# .net asynchronous command-pattern

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

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

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

1 个答案:

答案 0 :(得分:2)

你可以,但是使用if else来定义操作类型会破坏命令模式的目的。异步和简单(我猜同步)应该是单独的命令,每个命令都继承自ICommand(它有一个方法Execute())。应该使用可以处理命令特定上下文的工厂来创建这些命令,例如,您需要为异步操作等做一些特别的事情。