设计模式4.3 模板方法模式
2019-01-11 本文已影响3人
卢卡斯哔哔哔
点击进入我的博客
1 简介
模版方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对象设计的核心。
2 结构
![](https://img.haomeiwen.com/i14623831/d4ee0fe235eeb31a.png)
3 例子
HttpServlet
4 模板方法中的方法
模板方法
一个模版方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或个总行为的方法。这个模版方法一般会在抽象类中定义,并由子类不加以修改地完全继承下来。一个抽象类可以有任意多个模版方法,而不限于一个。每个模版方法都可以调用任意多个具体方法基本方法。
基本方法
基本方法又可以分为三种:抽象方法( Abstract method)、具体方法( Concrete method)和钩子方法( Hook Method)。
- 抽象方法:一个抽象方法由抽象类声明,由具体子类实现。在Java语言里一个抽象方法以 abstract关键字标示出来。
- 具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。有些具体方法可以起到工厂方法的作用,这样的具体方法又叫做工厂方法。在Java语言里面,一个具体方法没有 abstract关键字。
- 钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。