命令设计模式中命令执行方法中的多个接收方

时间:2019-02-26 06:49:15

标签: c# design-patterns command

我有一个命令,该命令实现了execute()接口中定义的ICommand方法。我需要调用在多个接收方中定义的操作。我们如何在execute()方法中实例化多个接收者对象?我们可以在单个Command对象中使用多个接收器吗?

我需要实例化2个接收器,并从execute()方法的每个接收器中调用一个方法。

void execute() {
    receiver1.do();
    receiver2.do2();
}

2 个答案:

答案 0 :(得分:0)

如果您尝试调用实例化命令范围内的多个方法。您可以将一个方法传递给MethodToExecute参数,该参数调用多个方法。例如:

myCommand = new Command(
    //MethodToExecute
    () => { method1(); method2(); method2(); },
    //MethodToDetectCanExecute
    () => { return true; }
);

答案 1 :(得分:0)

在命令设计模式中,Command 对象通过 aggregation 了解接收者。如果在 Command 对象中创建接收器对象,那就是组合。接收器对象应该能够在没有命令对象的情况下存在(松散耦合)。您应该将接收者对象作为参数传递给 Command 构造函数(在客户端代码中)。