【Java】23種設計模式——14.模板方法模式
定義
模板方法模式(Template Method Pattern),:這是一種行為型設計模式,它定義了一個操作中的算法骨架,而將一些步驟延遲到子類中實現。
定義角色
- 抽象類(AbstractClass):定義算法骨架和基本操作
- 具體類(ConcreteClass):實現抽象類中的抽象操作
應用場景
- 一次性事項算法不變的部分,將可變行為留給子類實現
- 控制子類擴展,只允許拓展特定操作。
- 多個類包含相同算法,但某些步驟實現不同。
使用
游戲框架模板方法。
-
抽象類 (游戲抽象方法)、
/** * 測試模板模式 * @Author:lyj * @Date:2025/5/20 10:29 */ public class TestTemplate { /** * 測試模板模式 * @author lyj * @date 2025-05-20 */ @Test public void test(){ // 板球 Game game1 = new Crickeet(); game1.play(); System.out.println("======="); // 足球 Game game2 = new FootBall(); game2.play(); } } -
具體類 (板球游戲,足球游戲)
/** * 模板模式-具體類: 板球 * @Author:lyj * @Date:2025/5/20 10:21 */ public class Crickeet extends Game{ /** * 游戲初始化 */ @Override public void initialize() { System.out.println("初始化板球游戲..."); } /** * 開始游戲 */ @Override public void startPlay() { System.out.println("開始板球游戲..."); } /** * 結束游戲 */ @Override public void endPlay() { System.out.println("結束板球游戲..."); } }/** * 模板模式-具體類:足球游戲 * @Author:lyj * @Date:2025/5/20 10:26 */ public class FootBall extends Game { /** * 初始化游戲 */ @Override public void initialize() { System.out.println("初始化足球游戲……"); } /** * 開始游戲 */ @Override public void startPlay() { System.out.println("開始足球游戲……"); } /** * 結束游戲 */ @Override public void endPlay() { System.out.println("結束足球游戲……"); } }
客戶端運行:
// 板球
Game game1 = new Crickeet();
game1.play();
System.out.println("=======");
// 足球
Game game2 = new FootBall();
game2.play();
運行結果:

有志者,事竟成,破釜沉舟,百二秦關終屬楚; 苦心人,天不負,臥薪嘗膽,三千越甲可吞吳。

浙公網安備 33010602011771號