码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——命令模式

时间:2020-03-20 22:10:52      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:职责   uml   ati   概念   对象   operation   mamicode   系统   抽象类   

一、概念:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

二、UML示意图

技术图片

 

 Command是一个命令抽象类,定义了Excute抽象方法,具体命令类持有一个接受者Receiver对象,并实现Excute方法根据不同的命令执行Receiver对象不同的方法。Invoker可以接受客户端发出的命令,并执行这个命令通知Receiver执行特定方法。

具体流程则是:客户端对Invoker发出命令,Invoker接受命令并执行这个命令,通知Receiver执行Operation方法。在这过程中根据需求甚至可以实现记录日志的功能,若想撤销命令也可以提供撤销命令的方法。

三、优缺点

优点:

  • 符合单一职责原则,Invoker、Client、Command、Receiver各自完成自己的工作。
  • 降低了耦合度。
  • 提供了扩展性。增加新的命令很简单,只需要增加新的具体命令类就可以了,不需要修改原代码,符合开闭原则。
  • 可以很方便的实现记录日志,命令撤销功能。

缺点:

  • 使用命令模式可能会导致某些系统有过多的具体命令类。

设计模式——命令模式

标签:职责   uml   ati   概念   对象   operation   mamicode   系统   抽象类   

原文地址:https://www.cnblogs.com/winsons/p/12535051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!