模板模式

1、模板模式的动机

2、模板模式的定义

定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特 定步骤。模板方法是一种类行为型模式

3、模板模式的类结构图

image

分析如下:

4、优缺点和适用场景

优点:

缺点:

适用场景:

5、实例

例:汽车模型,包含启动,停车;
汽车抽象类:


public abstract class Car {
    public void templateMethod() {
        start();
        stop();
    }

    protected abstract void stop();

    public abstract void start();
}

奥迪汽车:

public class AudiCar extends Car {
    protected void stop() {
        System.out.println("奥迪汽车,停车");
    }

    public void start() {
        System.out.println("奥迪汽车,启动");
    }
}

大众汽车:

public class VWCar extends Car {
    protected void stop() {
        System.out.println("大众汽车,停车");
    }

    public void start() {
        System.out.println("大众汽车,启动");
    }
}

测试:

public class Test {

    public static void main(String[] args) {
        Car car = new AudiCar();
        Car car1 = new VWCar();
        car.templateMethod();
        car1.templateMethod();
    }
}

6、模式扩展

钩子方法: