目的 将一个请求封装成对象,这样,发出请求和执行请求就成为了独立的操作;可以进行请求到鹅排队、撤销操作,记录日志请求
应用场景

(1)在不同时刻指定、排队请求

(2)抽象需要做的事件,以用作对象的参数

(3)支持撤销、重做等命令操作时

(4)可修改日志、并为系统崩溃的数据更新做准备时

构成 抽象命令、具体命令、接收者、调用者
备注

餐厅用餐,客人向厨师发送订餐请求,但由于不知道厨师姓名,点餐就会变得非常困难,使用命令模式,就把订餐请求封装成订单对象,就可以通过服务员传递到厨师受众。

命令模式下,客人不需要知道厨师姓名就能点单,使得发出请求和执行请求成为了独立的操作

 

 

 

 

 

 

 

命令模式由抽象命令、具体命令、接收者、调用者等角色组成。

(1)抽象命令:声明执行命令的接口,拥有执行命令的抽象方法

(2)具体命令:抽象命令类的具体实现。它拥有接收者对象,调用接收者的操作方法实现

(3)接收者:知道如何执行请求相关的操作

(4)调用者:请求的发送者,通过各种命令访问命令对象来执行相关请求,但不直接访问接收者