策略模式(Strategy Pattern)
2015-11-16 09:09
417 查看
设计原则
1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
2、针对接口编程(实际上是针对超类编程),而不是针对实现编程。
3、多用组合,少用继承。
优点:1.利用组合、委托和多态等技术和思想,可以有效地避免多重条件选择语句
2、提供了对开放—封闭原则的完美支持,将算法封装在独立的strategy中,使得它们易于切换,易于理解,易于扩展
3、策略模式中的算法也可以复用在系统的其他地方,从而避免许多重复的复制粘贴工作。
4、在策略模式中利用组合和委托来让Context拥有执行算法的能力,这也是继承的一种更轻便的替代方案。
缺点:1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
2.造成很多的策略类。
详细请参考:http://www.cnblogs.com/mengdd/archive/2013/01/19/2867443.html
1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
2、针对接口编程(实际上是针对超类编程),而不是针对实现编程。
3、多用组合,少用继承。
优点:1.利用组合、委托和多态等技术和思想,可以有效地避免多重条件选择语句
2、提供了对开放—封闭原则的完美支持,将算法封装在独立的strategy中,使得它们易于切换,易于理解,易于扩展
3、策略模式中的算法也可以复用在系统的其他地方,从而避免许多重复的复制粘贴工作。
4、在策略模式中利用组合和委托来让Context拥有执行算法的能力,这也是继承的一种更轻便的替代方案。
缺点:1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
2.造成很多的策略类。
详细请参考:http://www.cnblogs.com/mengdd/archive/2013/01/19/2867443.html
相关文章推荐
- 课件制作软件
- bootloader·开发总结
- 【转载】Linux常用命令列表
- String,StringBuffer与StringBuilder的区别??
- 网站收集
- 原生JavaScript事件详解
- android5.1之vibration学习总结
- vba 自动导入excel报表遇到的问题及解决方法
- eclipse 离线安装插件
- 【读书笔记】iOS网络-应用间通信
- 【读书笔记】iOS网络-应用间通信
- python3.5 + selenium环境搭建
- 常用网站
- 微信分享问题纪录
- 转载:字节流与字符流的理解
- Android模拟位置信息
- meclipse中project facet问题
- iOS开发系列—Objective-C之Foundation框架
- 在Activty中处理adapter中的监听事件的写法
- 你真的会玩SQL吗?实用函数方法汇总