您的位置:首页 > 其它

模板方法

2015-09-20 10:09 176 查看
模板方法的定义:

在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

下面是UML图,

使用的场景:

在android中,我们进行自定义view的使用,必须重写view的 OnMeasure, OnLayout,OnDraw三个方法,这个就是使用了模板方法设计模式。

在java中,java提供的排序算法,你必须实现 compareTo()方法,实际上这也是模板方法的设计模式,因为太常见了,我们很少去问为什么,提醒的是,在java 6一下的版本中,使用mergerSort也就是归并方法进行排序,在java 8中则使用的是TimSort排序,所以在实际中注意兼容性。

其次,关于“钩子”的问题,虽然在模板中定义好了步骤,但是在实际中,有些步骤可以不使用,或者在一定的条件下触发使用,这个时候,需要考虑使用钩子,钩子就是针对这种情况下产生的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: