设计模式笔记-命令模式

命令模式

最近在重新看设计模式,看了《Head First设计模式(中文版)》中的命令模式,跟上次刚入职看的感觉有点不一样,还是记录一下,便于以后查阅。

作用:将 动作的请求者 和 动作的执行者 解耦。

书中例子:场景,有很多电器都有开、关的方法;问题:如果遥控器和电器不解耦,遥控器会和电器有很多代码(例如if else),新增电器就要改代码。

      要将 遥控器 和 电器 解耦,把电器的开和关都放在命令里,遥控器不需要知道电器是怎么执行的,只需要调用命令就可以执行电器的方法,达到开或者关的需求。

设计对象:

1.实现  command 接口  的 N个具体命令 ,将命令的动作和电器(接收者)绑在一起,分别控制各个电器(接收者)的开关, 

2.根据客户(使用者)需求设置好 遥控器(调用者) 上每个按钮的命令

2.遥控器(调用者)按下按钮,调用命令上的执行方法,从而达到控制具体的电器开关

代码实现:

command 接口:

灯对象:

 

操作开灯命令对象:

遥控器(调用者)对象:

 客户(请求者):

总结:接收者注入在 相对应命令对象 里,调用者通过 调用命令 操作执行者 ,可以达到请求者和 执行者的 解耦。

 

posted @ 2018-01-03 16:11  wangchuanjie  阅读(164)  评论(0编辑  收藏  举报