说到这就不得不提到命令模式(Command Pattern)了.
命令模式允许你把动作的请求者和动作的实际执行者解耦. 这里, 动作的请求者就是遥控器, 而执行动作的对象就是某个家用电器....项目设计图
回到我们的需求, 参考快餐店的例子, 使用命令模式做一下设计:
客户Client创建了一个命令(Command)对象....家用电器使用自己独有的控制方法进行动作....这里面:
客户 --- 饭店客人, 我
命令 --- 订单, 插槽
调用者 --- 服务员, 遥控器
setCommand()设置命令 --- takeOrder() 取订单, 插上需要控制的电器
execute...记录请求
这个例子就是使用命令模式记录请求动作的历史, 如果出问题了, 可以按照这个历史进行恢复.