模板方法模式是一種行為型設計模式,它在父類中定義一個演算法的骨架,將某些步驟延遲到子類中實現。這種模式讓子類可以在不改變演算法結構的情況下,重新定義演算法的某些特定步驟。
在 Spring 框架中,HibernateTemplate 的實現就是經典的模板方法模式應用:開啟事務 → 打開 Session → 執行業務邏輯 → 關閉 Session。這套固定流程由父類控制,具體的業務操作交由子類完成。
public class Demo {
public static void main(String[] args) {
Game g1 = new LOL();
Game g2 = new CF();
g1.playGame();
g2.playGame();
}
}
abstract class Game {
// 初始化遊戲 - 固定步驟
protected void init() {
System.out.println("初始化遊戲並登入遊戲...");
}
// 具體玩法 - 由子類實現
public abstract void play();
// 結束遊戲 - 固定步驟
protected void end() {
System.out.println("結束遊戲並記錄登出...");
}
// 模板方法:定義演算法骨架
public final void playGame() {
init();
play();
end();
}
}
class LOL extends Game {
@Override
public void play() {
System.out.println("玩英雄聯盟遊戲");
}
}
class CF extends Game {
@Override
public void play() {
System.out.println("玩穿越火線遊戲");
}
}
模板方法模式雖然概念簡單,但在實際開發中極為常見。它完美體現了「開閉原則」——對擴展開放,對修改關閉。掌握這個模式,能幫助你設計出更靈活、可維護的程式碼架構。