auto commit
This commit is contained in:
parent
2b709d2f6a
commit
432917db9a
|
@ -845,27 +845,27 @@ if (uniqueInstance == null) {
|
||||||
|
|
||||||
**1. 问题描述**
|
**1. 问题描述**
|
||||||
|
|
||||||
设计一个遥控器,它有很多按钮,每个按钮可以发起一个命令,让一个家电完成相应操作。
|
设计一个遥控器,它有很多按钮,每个按钮可以发起一个命令,命令会让一个家电完成相应操作。有非常多的家电,并且之后会增加家电。
|
||||||
|
|
||||||
|
<div align="center"> <img src="../pics//f6be22cb-d64f-4ee5-87b7-cbc4e6255c0e.jpg" width="700"/> </div><br>
|
||||||
|
|
||||||
有非常多的家电,并且之后会增加家电。
|
有非常多的家电,并且之后会增加家电。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//f6be22cb-d64f-4ee5-87b7-cbc4e6255c0e.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//5b832bde-d05e-42db-b648-42e274571ad9.jpg" width="700"/> </div><br>
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//5b832bde-d05e-42db-b648-42e274571ad9.jpg"/> </div><br>
|
|
||||||
|
|
||||||
**2. 模式定义**
|
**2. 模式定义**
|
||||||
|
|
||||||
将命令封装成对象,以便使用不同的命令来参数化其它对象。
|
将命令封装成对象,以便使用不同的命令来参数化其它对象。
|
||||||
|
|
||||||
**3. 解决方案类图**
|
**3. 问题的解决方案类图**
|
||||||
|
|
||||||
- RemoteControl 是遥控器,它可以为每个按钮设置命令对象,并且调用命令对象的 execute() 方法。
|
- RemoteControl 是遥控器,它可以为每个按钮设置命令对象,并且执行命令。
|
||||||
|
|
||||||
- Command 就是命令对象,命令模式正式将各种命令封装成 Commad 对象来实现的。
|
- Command 是命令对象。
|
||||||
|
|
||||||
- Light 是命令真正的执行者。可以注意到 LightOnCommand 和 LightOffCommand 类组合了一个 Light 对象,通过组合的方法,就可以将 excute() 方法委托给 Light 对象来执行。
|
- Light(电灯)是命令真正的执行者。
|
||||||
|
|
||||||
- RemoteLoader 是客户端,注意它与 RemoteControl 的区别。因为 RemoteControl 不能主动地调用自身的方法,因此也就不能当成是客户端。客户端好比人,只有人才能去真正去使用遥控器。
|
- RemoteLoader 是客户端,应该注意它与 RemoteControl 的区别。因为 RemoteControl 不能主动地调用自身的方法,因此也就不能当成是客户端。客户端好比人,只有人才能去真正去使用遥控器。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//b7b1f5c6-ff8a-4353-8060-44bbc4b9e02e.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//b7b1f5c6-ff8a-4353-8060-44bbc4b9e02e.jpg"/> </div><br>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user