美文网首页
行为型模式之命令

行为型模式之命令

作者: 0爱上1 | 来源:发表于2018-04-28 10:11 被阅读18次

定义:

一种对象行为型模式,可以实现调用者接收者之间的完全解耦。而请求则被封装成了一个命令对象。

类比现实生活中的开关灯,我们(调用者 Invoker)只需要操作可以开灯的开关(指定命令),由指定命令去操作灯(接收者 Receiver)的打开和关闭。

而这里的灯开关就是我们的具体命令类 ConcreteCommand ,将具体的命令转给接收者去操作。

UML类图:

1

代码实现:

    示例代码采用现实生活中的开关灯示例

    1:  调用者

2

2:接收者

3

3:抽象命令类

4

4:具体命令类-开灯命令

5

5:具体命令类 - 关灯命令

6

7:客户端

7

8:结果

8

模式总结:

优势:

    1:使用命令设计模式,可以实现调用者和接收者之间的完全解耦,调用者只需要调用开灯命令类的execute方法即可,不需要知道具体是哪个接收者执行的。

    2:高扩展性,后续再增加其他命令的化,比如让保安负责每天的空调开启和关闭。只要增加一个接收者--空调,增加一个具体的空调开关命令即可,不会影响到调用者的代码变动

劣势:

    随着保安手中持有的命令越来越多,造成我们的Command的子类越来越多,维护起来就会很麻烦。不过可以结合后面的模板方法模式,减少Command子类的膨胀问题。

相关文章

网友评论

      本文标题:行为型模式之命令

      本文链接:https://www.haomeiwen.com/subject/skbwlftx.html