【设计模式】--TEMPLATE METHOD 模式 和 STRATEGY 模式 :继承和委托
来源:互联网 发布:淘宝九块九在哪里 编辑:程序博客网 时间:2024/05/22 07:57
简介:
template method模式使用的是继承,把公用的方法抽象到1个抽象的基类中;子类去实现抽象的方法;
strategy 模式使用的是接口+组合,把公用的算法,放到runner (worker)类中;
UML见简图:
【ApplicationRunner(算法的聚合)】---->【《interface》 Application】<|-----【具体的实现类Sub】
strategy模式代价:涉及更多数量的类和简介层次。ApplicationRunner中委托指针的使用招致比继承多了一点运行时间和数据空间的开销。
好处:如果许多不同的应用程序要运行,就可以重用ApplicationRunner实例,并把不同的Application实现传递给它,
从而减小了通用算法和该算法所控制的具体细节之间的耦合。
委托的好处:实现接口的具体的实现类Sub,对ApplicationRunner一无所知,符合DIP规范。Sub还可以作为引用,使用到其他的ApplicationRunner,实现不同的算法。
具体的实现细节独立与高层的算法重用,运行每个具体的实现都可以被多个不同的通用算法操纵。
委托的代价:复杂性,内存,以及运行时间开销。
继承的代价:具体实现类对基类依赖,基类中包含着通用算法。具体类确定具体的算法也就确定了,不能再做扩展了。
阅读全文
0 0
- 【设计模式】--TEMPLATE METHOD 模式 和 STRATEGY 模式 :继承和委托
- template method模式和strategy模式
- Template Method模式和Strategy模式
- Strategy、Template Method和Bridge模式
- Template模式和Strategy模式
- Template模式和Strategy模式
- Strategy模式和Template Method模式的异同浅析
- Template Method模式和Strategy模式有何异同
- Template Method模式和Strategy模式有何异同
- 三。Template Method模式(继承)与Strategy模式(委托) -- 分离算法与上下文
- 三。Template Method模式(继承)与Strategy模式(委托) -- 分离算法与上下文
- 设计模式笔记(12 STRATEGY & TEMPLATE METHOD)
- 设计模式笔记(12 STRATEGY & TEMPLATE METHOD)
- 设计模式笔记(12 STRATEGY & TEMPLATE METHOD)
- 设计模式笔记(12 STRATEGY & TEMPLATE METHOD)
- 比较Template method、Strategy和Builder模式随想
- strategy和template模式区别
- Template Method模式与Strategy模式
- 《大型分布式网站价格设计与实践》读书笔记
- 【Git】git status 中文文件名编码问题解决
- 第6章 函数
- java面试总结-5
- java中equals与hashcode的方法使用
- 【设计模式】--TEMPLATE METHOD 模式 和 STRATEGY 模式 :继承和委托
- 深入浅出 Python Iterators 迭代器
- java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
- Wannafly模拟赛5 A Split
- PCA
- Qt中的线程池
- ISE学习
- java IO 使用Properties设置键值对配置信息 写入文件和从文件中读取
- ngxin