什么是模板方法模式
父类抽象出子类共有的方法,子类实现各自不同的业务。
总之就是一种行为有他们共同的方法,只是他们具体的实现不一样。比如开车这种行为模式,启动-->换挡-->踩油门。每种型号品牌的车都有共同的行为,但是不同型号品牌的车的实现方式可能不同,需要每个品牌型号的车自己实现这些功能。这样的定义上面行为的模式,称之为模板方法设计模式。
定义模板
public abstract class AbstractCar {
// 启动
public abstract void star();
// 换挡
public abstract void shift();
// 踩油门
public abstract void stepGas();
public void runCar(){
star();
shift();
stepGas();
}
}
子类实现
public class BMWCar extends AbstractCar {
@Override
protected void star() {
System.out.println("宝马一键启动");
}
@Override
protected void shift() {
System.out.println("宝马换挡");
}
@Override
protected void stepGas() {
System.out.println("宝马踩油门");
}
}
。。。其他车辆实现
启动车辆
AbstractCar car = new BMWCar();
car.runCar();
总结
模板方法设计模式最核心的是一组行为里面有着共同的行为,但是他们的具体实现不同。