模板模式
一個抽象類公開定義了執(zhí)行它的方法的方式/模板坏怪。
主要解決:一些方法通用贝润,卻在每一個子類都重新寫了這一方法。
注意事項:為防止惡意操作铝宵,一般模板方法都加上 final 關鍵詞打掘。
/**
* Created by malei on 2016/12/6.
* 創(chuàng)建一個抽象類,它的模板方法被設置為 final
* 父類的方法不實現(xiàn)鹏秋,留出來讓子類去根據自己的需求來實現(xiàn)
*/
public abstract class Game {
protected abstract void initView();
protected abstract void startPlay();
protected abstract void endPlay();
public final void play(){
initView();
startPlay();
endPlay();
}
}
/**
* Created by malei on 2016/12/6.
*/
public class DotaGame extends Game{
@Override
protected void initView() {
Log.show("初始化數(shù)據");
}
@Override
protected void startPlay() {
Log.show("游戲開始");
}
@Override
protected void endPlay() {
Log.show("游戲結束");
}
public static void main(String[] args){
Game game = new DotaGame();
game.play(); //調用的父類的方法尊蚁,但是實現(xiàn)卻是子類
}
}