首页 > 其他 > 详细

设计模式——命令模式

时间:2020-03-20 22:47:19      阅读:67      评论:0      收藏:0      [点我收藏+]

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

二、UML示意图

技术分享图片

 

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

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

三、优缺点

优点:

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

缺点:

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

设计模式——命令模式

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!