程式碼詳解設計模式--模板模式
阿新 • • 發佈:2019-01-04
模板模式
一個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。
- 優點:
- 封裝不變部分,擴充套件可變部分。
- 提取公共程式碼,便於維護。
- 行為由父類控制,子類實現。
- 缺點:
- 每個不同實現都需要一個子類來實現。
//遊戲模板類
public abstract class Game {
abstract void initialize();
abstract void startPlay();
abstract void endPlay ();
//模板
public final void play(){
//初始化遊戲
initialize();
//開始遊戲
startPlay();
//結束遊戲
endPlay();
}
}
// 足球遊戲
public class Football extends Game {
@Override
void initialize() {
System.out.println("準備足球");
}
@Override
void startPlay() {
System. out.println("踢足球");
}
@Override
void endPlay() {
System.out.println("收拾足球");
}
}
//籃球遊戲
public class Basketball extends Game {
@Override
void initialize() {
System.out.println("準備籃球");
}
@Override
void startPlay() {
System.out.println("打籃球");
}
@Override
void endPlay() {
System.out.println("收拾籃球");
}
}
//使用示例
public class Demo {
public static void main(String[] args) {
// 足球
Game game1 = new Football();
game1.play();
// 籃球
Game game2 = new Basketball();
game2.play();
}
}