Java模板模式
模板方法(Template Method)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。
模板方法实例
创建一个 Game 抽象类,该类定义了将模板方法设置为final的操作,以使其无法被覆盖。 Cricket和Football是扩展Game并覆盖其方法的具体类。

第1步 - 使用最终的模板方法创建一个抽象类。
Game.java
public abstract class Game { abstract void initialize(); abstract void startPlay(); abstract void endPlay(); //模板方法 public final void play(){ //调用初始化方法 initialize(); //调用开始游戏方法 startPlay(); //调用结束游戏方法 endPlay(); } }
第2步 - 创建扩展上述类的具体类。
Cricket.java
public class Cricket extends Game { @Override void endPlay() { System.out.println("Cricket Game Finished!"); } @Override void initialize() { System.out.println("Cricket Game Initialized! Start playing."); } @Override void startPlay() { System.out.println("Cricket Game Started. Enjoy the game!"); } }
Football.java
public class Football extends Game { @Override void endPlay() { System.out.println("Football Game Finished!"); } @Override void initialize() { System.out.println("Football Game Initialized! Start playing."); } @Override void startPlay() { System.out.println("Football Game Started. Enjoy the game!"); } }
第3步 - 使用 Game 的模板方法play()演示定义的玩游戏方式。
TemplatePatternDemo.java
public class TemplatePatternDemo { public static void main(String[] args) { Game game=new Cricket(); game.play(); System.out.println(); game=new Football(); game.play(); } }
第4步 - 验证输出。
Cricket Game Initialized! Start playing. Cricket Game Started. Enjoy the game! Cricket Game Finished! Football Game Initialized! Start playing. Football Game Started. Enjoy the game! Football Game Finished!
祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)
精选教程推荐
👇 以下精选教程可能对您有帮助,拓展您的技术视野
暂无学习笔记,成为第一个分享的人吧!
您的笔记将帮助成千上万的学习者