设计模式-模板方法模式

94 阅读1分钟

模板方法模式,在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

优点

(1)模板方法模式通过把不变的行为搬移到父类,去除了子类中的重复代码。

(2)子类实现算法的某些细节,有助于算法的扩展。

(3)通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。

代码实例

public abstract class AbstractMike {


    final void  make() {
        System.out.println("制作开始");
        dosing();
        flavour();
        addWater();
        System.out.println("制作完成");
    }

    // 添加配料(让子类实现)
    public void dosing() {}

    private void addWater() {
        System.out.println("添加水");
    }

    private void flavour() {
        System.out.println("添加调料");
    }

}
public class AppleMike extends AbstractMike{

    @Override
    public void dosing() {
        System.out.println("我添加了苹果");
    }
}
public class PearMile extends AbstractMike{

    @Override
    public void dosing() {
        System.out.println("我添加了梨");
    }

    public static void main(String[] args) {
        AbstractMike abstractMike = new AppleMike();
        AbstractMike abstractMike1 = new PearMile();
        abstractMike.make();
        System.out.println("-----------------------------");
        abstractMike1.make();
    }


}