命令模式似乎不必要地复杂(我无法理解什么?)
||
我已经阅读了命令模式,我想我缺少了一些东西。 Command对象的存在是为了抽象出Receiver对象的详细信息。在我看来,我们可以简单地在这里停止,并保留对Command对象的引用,以在适当的时间执行适当的方法。
那么,为什么需要调用者?这个额外的间接提供了什么好处?我们已经在Command后面隐藏了Receiver的详细信息,那么将Command隐藏在客户端的动机又是什么呢?
没有找到相关结果
已邀请:
4 个回复
蔬谢窗港
悍蕾驮苇袜
标记
而不是
允许松散耦合。
可以更改方法的名称(例如,将switchOn更改为swithcOnTV),如以下示例所示: 相关文章:使用命令设计模式 为了了解ѭ0的目的,我希望您参考“餐厅和汽车服务中心”用例中的这篇文章。 服务员(
)从他垫子上的
下订单。然后将ѭ8d排队等待订单厨师,然后到达进行加工的厨师(
)。 客户是“ 7”。他通过服务员“ 0”将请求发送给“ 1”。服务员通过将命令(在本例中为订单)封装在支票上,然后将其放置,从而创建“ 2”对象(即命令本身)来封装该命令。
将是厨师,在完成有关命令之前发送给他的所有命令的工作之后,便开始工作。 该示例的另一个值得注意的方面是,订单的便笺簿不只支持菜单中的订单,因此它可以支持烹饪许多不同项目的命令。
蹦吃舷弦
磐乓铝举
实例化a2ѭ并将其传递给the0ѭ,后者仅了解only18ѭ接口。实际上,客户端为调用程序执行依赖项注入。 另请注意,有多种方法可以实现ConcreteCommand(请参阅https://stackoverflow.com/a/35617012/1371329)。如果ConcreteCommand具有某种机制来动态发现其自己的Receiver,则可能不需要依赖注入。