我有一个命令,该命令实现了execute()
接口中定义的ICommand
方法。我需要调用在多个接收方中定义的操作。我们如何在execute()
方法中实例化多个接收者对象?我们可以在单个Command对象中使用多个接收器吗?
我需要实例化2个接收器,并从execute()
方法的每个接收器中调用一个方法。
void execute() {
receiver1.do();
receiver2.do2();
}
答案 0 :(得分:0)
如果您尝试调用实例化命令范围内的多个方法。您可以将一个方法传递给MethodToExecute参数,该参数调用多个方法。例如:
myCommand = new Command(
//MethodToExecute
() => { method1(); method2(); method2(); },
//MethodToDetectCanExecute
() => { return true; }
);
答案 1 :(得分:0)
在命令设计模式中,Command 对象通过 aggregation 了解接收者。如果在 Command 对象中创建接收器对象,那就是组合。接收器对象应该能够在没有命令对象的情况下存在(松散耦合)。您应该将接收者对象作为参数传递给 Command 构造函数(在客户端代码中)。