設計模式-行為篇(模板模式)

模板模式

一個抽象類公開定義了執(zhí)行它的方法的方式/模板。

主要解決:一些方法通用,卻在每一個子類都重新寫了這一方法。

注意事項:為防止惡意操作,一般模板方法都加上 final 關鍵詞。

/**
 * Created by malei on 2016/12/6.
 * 創(chuàng)建一個抽象類,它的模板方法被設置為 final
 * 父類的方法不實現(xiàn),留出來讓子類去根據(jù)自己的需求來實現(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ù)據(jù)");
    }

    @Override
    protected void startPlay() {
        Log.show("游戲開始");
    }

    @Override
    protected void endPlay() {
        Log.show("游戲結(jié)束");
    }

    public static void main(String[] args){
        Game game = new DotaGame();
        game.play();  //調(diào)用的父類的方法,但是實現(xiàn)卻是子類
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容