设计模式-模板方法

模板方法

定义:定义一个过程中的算法骨架,而将算法的一些步骤延迟到子类中。

这么做是为了将不变的部分封装到父类中实现,而将可变部分的算法由子类继承实现,便于扩展。

模板结构:

  • 抽象模板
    • 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
    • 基本方法:
      • 抽象方法:在抽象类中声明,由具体子类实现。
      • 具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
      • 钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
  • 具体子类
    具体实现类,实现抽象类中定义的抽象方法和钩子方法。

代码示例:

public abstract class AbstractClass {

    public void templateMethod(){
        specificMethd();
        abstractMethod1();
        abstractMethod2();
    }


    void specificMethd(){
        System.out.println("抽象类实现的方法");
    }

    abstract void abstractMethod1();
    abstract void abstractMethod2();

}
public class ConcreteClass extends AbstractClass {
    @Override
    void abstractMethod1() {
        System.out.println("子类实现的方法1");
    }

    @Override
    void abstractMethod2() {
        System.out.println("子类实现的方法2");
    }
}

测试代码:

 public static void main(String[] args) throws InterruptedException, CloneNotSupportedException {
        AbstractClass abstractClass=new ConcreteClass();
        abstractClass.templateMethod();
    }

返回目录

posted @ 2021-07-03 23:06  女友在高考  阅读(55)  评论(0编辑  收藏  举报