类型 3:行为 - 命令设计模式
行为设计模式侧重于类和对象如何相互通信。命令模式的主要重点是在相关方(阅读:类)之间灌输更高程度的松散耦合。
呃......什么?
耦合是两个(或多个)相互交互的类相互作用的方式。这些类交互的理想方案是它们不会严重依赖彼此。这就是松散耦合。因此,松散耦合的更好定义是,相互连接的类,彼此使用最少。
当需要发送请求而没有有意识地知道您要求什么或接收者是谁时,就产生了对这种模式的需求。
在此模式中,调用类与实际执行操作的类分离。调用程序类仅具有可调用方法 execute,该方法在客户端请求它时运行必要的命令。
让我们举一个基本的真实例子,在一家高档餐厅点餐。随着流程的进行,您将订单(命令)交给服务员(调用者),然后服务员将其交给厨师(接收者),以便您可以获得食物。可能听起来很简单...但有点麻烦的代码。
这个想法很简单,但编码是绕鼻子走的。
命令设计模式类图
技术端的操作流程是,你做一个具体的命令,实现命令接口,要求接收方完成一个动作,然后把命令发送给调用者。调用者是知道何时发出此命令的人。厨师是唯一知道在给定特定命令/命令时该怎么做的人。因此,当运行调用方的执行方法时,它反过来会导致命令对象的执行方法在接收方上运行,从而完成必要的操作。
我们需要执行的是;
接口命令
实现命令接口的类顺序
类服务员(调用者)
A级厨师(接收器)
所以,编码是这样的:
厨师,接收者
命令,接口
命令,具体命令
服务员,调用者
您,客户
如上所示,客户下订单并将接收者设置为厨师。订单被发送给服务员,服务员将知道何时执行订单(即何时向厨师下达烹饪订单)。当调用程序被执行时,Orders的执行方法在接收器上运行(即,厨师被赋予烹饪意大利面?或烘烤蛋糕的命令?)。