模板模式

109 阅读1分钟

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

例子: 师傅提供模板,徒弟跟着步骤做,但是每一步具体怎么操作,徒弟自己决定 image.png

image.png

import java.sql.SQLOutput;

class TemplateMethodPattern {
    public static void main(String[] args) {
        Cooking cooking = new CookingFood();
        cooking.cook();
    }
}

abstract class Cooking {
    protected abstract void step1();
    protected abstract void step2();

    public void cook() {
        System.out.println("做饭开始");
        step1();
        step2();
        System.out.println("做饭结束");
    }
}

class CookingFood extends Cooking {

    @Override
    protected void step1() {
        System.out.println("放鸡蛋和西红柿");
    }

    @Override
    protected void step2() {
        System.out.println("少放盐多放味精");
    }
}