命令模式与策略模式
2016-06-14 16:41
176 查看
策略模式把易于变化的行为分别封装起来,让它们之间可以互相替换, 让这些行为的变化独立于拥有这些行为的客户。
GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。
Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题。
GoF《设计模式》中说道:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
从这点看:
策略模式是通过不同的算法做同一件事情:例如排序
而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。
命令模式是含有不同的命令(含有接收者的请求):做不同的事情;隐藏接收者执行细节。常见菜单事件,
而策略模式含有不同的算法,做相同的事情;
区别在于是否含有接收者。命令模式含有,策略模式不含有。
GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。
Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题。
GoF《设计模式》中说道:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
从这点看:
策略模式是通过不同的算法做同一件事情:例如排序
而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。
命令模式是含有不同的命令(含有接收者的请求):做不同的事情;隐藏接收者执行细节。常见菜单事件,
而策略模式含有不同的算法,做相同的事情;
区别在于是否含有接收者。命令模式含有,策略模式不含有。
相关文章推荐
- 使用构造器创建bean
- Android 代码规范
- libevent文档学习(一)多线程接口和使用
- Java读写txt文件
- Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅
- 智能机器人的高级阶段:不受人工控制的自我学习
- swiper图片轮播lazy加载自适应浏览器宽度
- java并发编程
- linux下nohup日志输出过大问题解决方案
- 关于LayoutParams(int width, int height, float weight) 参数解析
- Linux里各种压缩格式
- git简单使用-github
- Pixhawk官网飞行模式介绍
- 序列化
- cloud 调用列表并返回数据操作代码
- CommonJS AMD CMD UMD区别
- Android的 PackageManager 和ActivityManager的功能介绍
- QT-文件选择对话框的模态与非模态
- RecyclerView:实现带header的grid
- HTML5 History对象,Javascript修改地址栏而不刷新页面