【23种设计模式】之模板方法模式

46 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

说明

  • 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

角色

  • 抽象模板:定义了一个模板方法和若干抽象方法和具体方法,
  • 具体模板:继承抽象模板类并实现抽象方法

代码实现

  • 结构简单,就是在抽象类中实现相关逻辑,子类可以选择覆盖或者继承
public abstract class Product {
    public abstract void start();
    public abstract void product();
    public abstract void end();
    public void run(){
        this.start();
        this.product();
        this.end();
    }
}
public class MyProduct extends Product{
    @Override
    public void start() {
        System.out.println("我的冰淇淋开始制作");
    }

    @Override
    public void product() {
        System.out.println("我的冰淇淋开始制作中");
    }

    @Override
    public void end() {
        System.out.println("我的冰淇淋制作完成");
    }
}
public class Test {
    public static void main(String[] args){
        Product myProduct = new MyProduct();
        myProduct.run();
    }
}