原创

4.9 《硬啃设计模式》 第26章 万能排序 - 模板方法模式(Template Method Pattern)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://fireball.blog.csdn.net/article/details/16927635
下面是对int类型数组进行排序的代码:

模板方法1.png 

如果我们要对字符、日期、任意类型的对象进行排序,写法也是类似的,但红色字部分的代码需要修改。
例:Person类,我们可能会按人身高排序,也可能按体重排序。
排序的框架算法是不变的,没有必要针对不同情况重新写一次。
你有什么方案来改善这个问题,做出一个能对任何类型对象排序的万能排序器呢?

应用了模板方法模式的设计:

模板方法2.png 

说明:
1.Sort定义了排序算法的框架。
2.Compare和Swap是该算法的其中两步。
3.Compare需要各子类去实现。
4.Swap提供了缺省的实现办法。

5.继承了Sorter的IntSorter、StringSorter、PersonSorter分别实现了整数、字符串、Person的排序算法。



请看下一文……

 

 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

www.umlonline.org创办人

文章最后发布于: 2013-11-24 22:17:55
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览