設計模式之模板方法模式

模板方法模式就是把很多相同的業務流程抽象出來,定義一個公用的模板方法,具體的業務類可以複用這個模板方法,但是具體的業務實現可以在不同的實現類中實現,就像簡歷模板、入會申請書模板類似。該模式封裝了不可變的部分,擴展可變部分,在父類中提取了公共的方法,以便子類複用。

我們就用遊戲舉例子吧,所有的遊戲都有遊戲開始、遊戲進行中,遊戲結束這三個過程,但是遊戲有籃球,足球,檯球等很多種,我們可以把這三個過程提取出來,無論是什麼遊戲,這三個過程都可以被複用,這三個過程就是模板方法,看代碼吧。

創建遊戲類。

public abstract class Game {
abstract void start();
abstract void runing();
abstract void end();
//模板方法
public final void play(){
start();//開始遊戲
runing();//遊戲進行中
end();//遊戲結束
}
}

創建具體遊戲類,如籃球遊戲。

public class Basketball extends Game{
@Override
void start() {
System.out.println("籃球遊戲開始");
}
@Override
void runing() {
System.out.println("籃球遊戲進行中");
}
@Override
void end() {
System.out.println("籃球遊戲結束");
}
}

創建具體遊戲類,如足球遊戲。

public class Football extends Game{
@Override
void start() {
System.out.println("足球遊戲開始");
}
@Override
void runing() {
System.out.println("足球遊戲進行中");
}
@Override
void end() {
System.out.println("足球遊戲結束");
}
}

創建測試類:

public class MoudleTest {
public static void main(String[] args) {
Game game = new Basketball();
game.play();
System.out.println();
game = new Football();
game.play();
}
}

測試結果:

籃球遊戲開始
籃球遊戲進行中
籃球遊戲結束

足球遊戲開始
足球遊戲進行中
足球遊戲結束


分享到:


相關文章: