设计模式学习笔记——策略模式
2014-02-11 21:31
281 查看
我觉得策略模式与工厂方法模式极其相似!
策略模式:
工厂方法模式:
如果单从图来看,看不出有何相似之处。但看看调用方法就知道了:
策略模式:
工厂方法模式:
策略模式里有个上下文类,与工厂类非常像。在应用这两种模式的代码里,都是由调用方决定采用哪种策略,或者应用哪个工厂。策略代码和工厂代码本身,符合开闭原则,要改就改调用方。当然,这也可以看成是缺点,因为调用方要对策略和工厂非常了解。
策略模式:
工厂方法模式:
如果单从图来看,看不出有何相似之处。但看看调用方法就知道了:
策略模式:
Context context = new Context(); AbstractStrategy strategy; //采用哪种策略,由调用方决定 strategy = new ConcreteStrategyA(); context.setStrategy(strategy); context.algorithm();
工厂方法模式:
IFactory factory; //采用哪个工厂,由调用方法决定 factory = new ConcreteFactoryA(); IProduct product = factory.Create();
策略模式里有个上下文类,与工厂类非常像。在应用这两种模式的代码里,都是由调用方决定采用哪种策略,或者应用哪个工厂。策略代码和工厂代码本身,符合开闭原则,要改就改调用方。当然,这也可以看成是缺点,因为调用方要对策略和工厂非常了解。
相关文章推荐
- 设计模式学习笔记——策略模式
- 10305 - Ordering Tasks(拓扑序列)
- java版经典算法排序汇总
- c++调用qml
- linux驱动编程--几个重要函数及概念
- 键盘对应的数字
- 如何面对过去和未来
- JSP基本面试的试题
- Neutron provider external network
- 学习总结-String类常用API
- POJ 1703 Find them, Catch them(并查集)
- 有符号的范围,-128~+127详解
- Linux系统编程学习笔记(十一)守护进程
- 广告点击率的贝叶斯平滑
- win7,win8,32位,64位下vs2012如何永久配置opencv2.4.6
- android sqlite 返回插入的id
- java学习笔记 标准for循环的执行过程
- 协议栈概念
- 《父与子》--埃·奥·卜劳恩
- 闲扯游戏编程之html5篇--山寨版《flappy bird》源码