您的位置:首页 > 其它

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创办人
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: