A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zlb820 中级黑马   /  2016-6-11 22:23  /  677 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

模板方法模式
定义:
定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构就可以了重定义该算法中的一些特定步骤。
模板方法的方法
基本方法:
基本方法也叫基本操作,是由子类实现的方法,并且在模板方法中进行调用。
模板方法:
模板方法是一个具体的方法,是一个框架,他实现对基本方法的调度,完成固定的逻辑。
注意:为了防止恶意 的改写,一班模板方法都加上final关键字,不允许改写。
模板方法的应用:
1.封装不变的部分,扩展可变的部分
把认为不变的部分的算法封装到父类实现,而可变的部分通过继承来让子类进行扩展。
2.提取公共部分的代码,便于维护
3.行为由父类控制,子类实现
缺点:
最大的优点,有时也是最大的缺点
子类对父类产生影响。
使用场景:
1.多个子类共有的方法,并且逻辑基本相同
2.重要的,复杂的算法,可以把核心算法设计为模板方法,而周边的细节设计交给子类来实现
3.重构时,可以把相同的代码抽象到父类中,通过钩子函数(hook method)约束其行为

模板方法就是在模板方法中按照一定的规则和顺序调用基本方法

实践:
父类如何调用子类:
1.把子类传递到父类的有参构造中去,然后调用。
2.使用反射进行调用
3.父类调用子类的静态方法
其实模板方法也是一个非常好的方法。父类建立了框架,子类重写了父类的部分方法后,在父类的模板方法中在进行调用,产生不同的结果,典型的子类影响父类。

1 个回复

倒序浏览
学习学习,顶一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马