什麼是模板方法模式
父類抽象出子類共有的方法,子類實現各自不同的業務。
總之就是一種行爲有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行爲模式,啓動-->換擋-->踩油門。每種型號品牌的車都有共同的行爲,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行爲的模式,稱之爲模板方法設計模式。
定義模板
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();
總結
模板方法設計模式最核心的是一組行爲裏面有着共同的行爲,但是他們的具體實現不同。