因此,为了在任何类中创建命令(基于模式),该类必须知道接收者类,以便将其传递给命令的构造函数,然后将类耦合在一起。有没有办法使用命令模式并保持两个类之间的间接度量?
我能想到的唯一解决方案是:
- 使用调解器,但我不知道究竟如何,因为至少命令仍然需要传递给类,即使它只是它的接口
- 使用外观,但这会将任何命令调用类耦合到外观
- 使用事件系统而不是命令,但这在执行和编写代码本身方面有太多开销
- 使用创建模式以某种方式创建命令,但将所有内容与该对象耦合
我对事件系统最大的担忧是,根据我在事件系统方面的经验,您必须编写大量代码才能让发送者和接收者在彼此不知情的情况下进行交互,这很疯狂而且根本不实用——我希望通过一个event 要求我修改至少一个其他类,通常更多,这会产生与紧密耦合的 spegetti 代码一样糟糕的问题。此外,我通常需要类来发送对事件的响应,这也很麻烦。