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

【转】策略模式与命令模式区别

时间:2018-08-15 11:17:11      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:客户   压缩   comm   color   排序   解决   封装   复制   一个个   

策略模式 把易于变化的行为分别封装起来,让它们之间可以互相替换, 让这些行为的变化独立于拥有这些行为的客户。
GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化

Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题。
GoF《设计模式》中说道:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

从这点看:

策略模式是通过不同的算法做同一件事情:例如排序

而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者

目标不同!

命令模式是含有不同的命令(含有接收者的请求):做不同的事情;隐藏接收者执行细节。常见菜单事件,

而策略模式含有不同的算法,做相同的事情;

区别在于是否含有接收者。命令模式含有,策略模式不含有。命令模式中的命令可以单独运行。

打个比喻就是:

 命令模式等于菜单中的复制,移动,压缩等,而策略模式是其中一个菜单的例如复制到不同算法实现。

【转】策略模式与命令模式区别

标签:客户   压缩   comm   color   排序   解决   封装   复制   一个个   

原文地址:https://www.cnblogs.com/cg88/p/9480143.html

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