4.9 《硬啃设计模式》 第26章 万能排序 - 模板方法模式(Template Method Pattern)
2013-11-24 22:17
309 查看
下面是对int类型数组进行排序的代码:
如果我们要对字符、日期、任意类型的对象进行排序,写法也是类似的,但红色字部分的代码需要修改。
例:Person类,我们可能会按人身高排序,也可能按体重排序。
排序的框架算法是不变的,没有必要针对不同情况重新写一次。
你有什么方案来改善这个问题,做出一个能对任何类型对象排序的万能排序器呢?
应用了模板方法模式的设计:
说明:
1.Sort定义了排序算法的框架。
2.Compare和Swap是该算法的其中两步。
3.Compare需要各子类去实现。
4.Swap提供了缺省的实现办法。
5.继承了Sorter的IntSorter、StringSorter、PersonSorter分别实现了整数、字符串、Person的排序算法。
请看下一文…… 作者:张传波创新工场创业课堂(敏捷课程)讲师软件研发管理资深顾问CMMI首席专家《火球——UML大战需求分析》作者www.umlonline.org创办人
如果我们要对字符、日期、任意类型的对象进行排序,写法也是类似的,但红色字部分的代码需要修改。
例:Person类,我们可能会按人身高排序,也可能按体重排序。
排序的框架算法是不变的,没有必要针对不同情况重新写一次。
你有什么方案来改善这个问题,做出一个能对任何类型对象排序的万能排序器呢?
应用了模板方法模式的设计:
说明:
1.Sort定义了排序算法的框架。
2.Compare和Swap是该算法的其中两步。
3.Compare需要各子类去实现。
4.Swap提供了缺省的实现办法。
5.继承了Sorter的IntSorter、StringSorter、PersonSorter分别实现了整数、字符串、Person的排序算法。
请看下一文…… 作者:张传波创新工场创业课堂(敏捷课程)讲师软件研发管理资深顾问CMMI首席专家《火球——UML大战需求分析》作者www.umlonline.org创办人
相关文章推荐
- 《硬啃设计模式》 第26章 万能排序 - 模板方法模式(Template Method Pattern)
- 设计模式 - 模板方法模式(template method pattern) 排序(sort) 详解
- 设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释
- 极速理解设计模式系列:20.模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 我所理解的设计模式(C++实现)——模板方法模式(Template Method Pattern)
- C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】
- 模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 例说模板方法模式(Template Method Pattern)
- 模板方法模式(Template Method Pattern)学习笔记
- C#模板方法模式(Template Method Pattern)实例教程
- 模板方法模式(Template Method Pattern)。
- 设计模式 - 模板方法模式(template method pattern) JFrame 详解
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 深入浅出设计模式——模板方法模式(Template Method Pattern)
- 设计模式 —— 模板方法模式(Template method Pattern)
- 用最简单的例子理解模板方法模式(Template Method Pattern)
- 设计模式拾荒之模板方法模式( Template Method Pattern ): 与工厂方法模式之间的情侣关系
- java设计模式——模板方法模式(Template Method Pattern)