模板模式(Template)

定義

一個(gè)抽象類公開定義了執(zhí)行它的方法的方式/模板。它的子類可以按需要重寫方法實(shí)現(xiàn),但調(diào)用將以抽象類中定義的方式進(jìn)行。這種類型的設(shè)計(jì)模式屬于行為型模式。
模板模式是基于繼承的。

角色

抽象模板
具體實(shí)現(xiàn)

實(shí)例

創(chuàng)建一個(gè)抽象模板,它的模板方法用final修飾

public abstract class Game {
    abstract void initialize();
    abstract void startPlay();
    abstract void endPlay();

    public final void play(){
        initialize();
        startPlay();
        endPlay();
    }
}

創(chuàng)建具體實(shí)現(xiàn)類

public class Football extends Game {
    @Override
    void initialize() {
        System.out.println("football game initialized, start playing");
    }

    @Override
    void startPlay() {
        System.out.println("football game started, enjoy the game");
    }

    @Override
    void endPlay() {
        System.out.println("football game finished!");
    }
}
public class Basketball extends Game {
    @Override
    void initialize() {
        System.out.println("basketball game initialized, start playing");
    }

    @Override
    void startPlay() {
        System.out.println("basketball game started, enjoy the game");
    }

    @Override
    void endPlay() {
        System.out.println("basketball game finished!");
    }
}

調(diào)用模板方法

public class Test {
    public static void main(String[] args) {
        Game game = new Football();
        game.play();
    }
}

運(yùn)行結(jié)果

football game initialized, start playing
football game started, enjoy the game
football game finished!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.前言 在之前的文章設(shè)計(jì)模式(Design pattern):簡單&粗暴解析中已經(jīng)為大家深入淺出解析了 設(shè)計(jì)模式...
    Linhaojian閱讀 733評(píng)論 0 0
  • 1、概念介紹模版方法模式的結(jié)構(gòu) 定義一個(gè)操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變算法的結(jié)構(gòu)即...
    William8閱讀 512評(píng)論 0 1
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,631評(píng)論 1 32
  • 初步認(rèn)知 模板模式:抽象類中,有一個(gè)主方法,再定義1…n個(gè)方法,可以是抽象的,也可以是實(shí)際的方法。定義一個(gè)類,繼承...
    _Mocuishle閱讀 901評(píng)論 0 0
  • 設(shè)計(jì)模式匯總 一、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,081評(píng)論 1 15

友情鏈接更多精彩內(nèi)容