属于类的行为模式!
模板方法模式中的方法分为两类
- 模板方法
指定义在抽象类中,把基本方法组合在一起,形成一个总算法或一个总行为的方法。一般子类直接继承,无需修改。
2.基本方法
a)抽象方法 需要子类去实现
b)具体方法 无需子类实现,类似一个工厂方法(公用方法)
c)钩子方法 抽象类给一个空实现作为默认实现,子类可以进行扩展
用意
准备一个抽象类,将部分逻辑使用具体方法实现;然后声明一些抽象方法,迫使子类实现剩余的逻辑,进而让不同的子类可以有不同的方式实现。
即 在抽象类中使用一个具体方法,声明对各个模板方法的逻辑步骤,然后由子类去具体实现业务细节。(例如K2)
模板方法模式是基于继承的代码复用的基本技术。
滥用继承?
- 尽量多的使用基于对象的组合、聚合,达到复用的要求。
- 当类型的等级结构非常适合于抽象化,应该使用继承实现。
使用案例
- httpServlet 必须实现doPost和doGet方法
- BaseController
- k2