2004年10月9日星期五
来源:互联网 发布:js表格怎么合并 编辑:程序博客网 时间:2024/04/27 23:49
Robert C. Martin的“Agile Software Development:Principles,patterns,Practices”中关于Template Method模式和Strategy模式的比较。
1. 书中给出了一个滥用Template Method模式的例子,并不是Template Method模式本身不好,而是由于冒泡排序这个算法放在基类里实现,由其派生类实现具体算法步骤,不是一个好主意,因为对这个算法本身在具体实现(对排序类型)由派生类来实现,但是确无法应对冒泡这个算法本身的变动(QuickBubbleSorter)这种情况,于是这个模式的实现就变成了对模式的滥用。
2. 相反使用继承加大了算法步骤和具体实现方法两个可变因素的耦合,违反了DIP原则:高层模块和底层模块之间应该使用接口隔离。
3. 从这个例子中可以看出:Template Method模式适合使用在抽象的通用算法基本结构极少会发生改变的情况,而Strategy模式则适用在算法基本结构较易发生变化而实现步骤具有多种实现的情形,因此Strategy模式抽象的难度较大,并且隔离二者的接口的设计尤为重要。
- 2004年10月9日星期五
- 2004年10月22日星期五
- 2006年9月15日星期五
- 2006年9月29日星期五
- 2006年9月13日星期五
- 2010年4月9日星期五
- 2007年10月26日 星期五
- 2009年4月10日星期五
- 2011年10月28日 星期五
- 9月29日 星期五
- 2011年12月9日星期五(oracle读书笔记)
- 2006年10月6日 星期五 今天是中秋节
- Delphia5开发指南->第二章->方法的类型(2010年9月10日星期五)
- 2005年4月22日 星期五
- 2007年4月13日 星期五
- 2007年4月20日 星期五
- 2007年4月26日 星期五
- 2007年5月11日 星期五
- 2004年9月29日星期四
- 修改mdi窗体背景色
- 2004年9月30日星期三
- 2004年10月8日星期六
- Oracle函数列表速查
- 2004年10月9日星期五
- 2004年10月10日星期日
- 放弃,也是人生的一道风景!
- 页面载入进度条
- 心目中的编程高手
- Windows2003下安装Apache+php+jsp+mysql 选择自 aliketen 的 Blog
- Mapping Objects to XML Files using Java 5 Annotations
- 音乐--乐队
- 音乐--女声版