设计模式4.3 模板方法模式

字节跳动飞书内推!
北京、杭州、武汉、广州、深圳、上海,六大城市等你来投。
感兴趣的朋友可以私我咨询&内推,也可以通过链接直接投递!
海量HC,极速响应,快来和我成为同事吧。
今日头条、抖音、Tik Tok也可以内推~

点击进入我的博客

1 简介

模版方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对象设计的核心。

2 结构

模版方法

3 例子

HttpServlet

4 模板方法中的方法

模板方法

一个模版方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或个总行为的方法。这个模版方法一般会在抽象类中定义,并由子类不加以修改地完全继承下来。一个抽象类可以有任意多个模版方法,而不限于一个。每个模版方法都可以调用任意多个具体方法基本方法。

基本方法

基本方法又可以分为三种:抽象方法( Abstract method)、具体方法( Concrete method)和钩子方法( Hook Method)。

  • 抽象方法:一个抽象方法由抽象类声明,由具体子类实现。在Java语言里一个抽象方法以 abstract关键字标示出来。
  • 具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。有些具体方法可以起到工厂方法的作用,这样的具体方法又叫做工厂方法。在Java语言里面,一个具体方法没有 abstract关键字。
  • 钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。

你可能感兴趣的:(设计模式4.3 模板方法模式)