gpt4 book ai didi

oop - 为什么我们在命令设计模式中需要一个 "receiver"类

转载 作者:行者123 更新时间:2023-12-04 09:25:47 25 4
gpt4 key购买 nike

我正在学习命令设计模式。据我所知,与命令模式相关的四个术语是命令、接收者、调用者和客户端。

一个具体的命令类有一个 execute()方法和调用程序有几个命令。调用者决定何时调用 execute()命令的方法。

execute()方法被调用,它调用接收者的一个方法。然后,接收器完成工作。

我不明白为什么我们需要接收器类?我们可以做里面的工作execute()方法,似乎接收器类是多余的。

预先感谢。

最佳答案

设计模式用于解决软件问题。

在尝试理解解决方案之前,您必须先了解问题(在本例中为命令模式)

命令模式应用的问题是在对象 A(客户端)调用对象 B(接收器)中的方法的上下文中,因此接收器是问题的一部分,而不是解决方案的一部分。

命令模式提供的解决方案或想法是将 A 到 B 的方法调用封装在一个对象(命令)中,实际上这接近于正式的模式定义。当您将请求作为对象进行管理时,您就能够解决一些问题或实现一些功能。 (您还需要其他部分,例如称为 Invoker 的部分)

list可以给你一些很好的例子,说明什么样的问题 o 特性适合命令模式。

注意:comamnd 模式不是解耦所必需的,实际上是最常见的示例模式实现,客户端需要创建一个新的接收者实例,所以我们这里不能谈论解耦。

关于oop - 为什么我们在命令设计模式中需要一个 "receiver"类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com