创建一个 Game 抽象类,该类定义了将模板方法设置为final的操作,以使其无法被覆盖。 Cricket和Football是扩展Game并覆盖其方法的具体类。
无涯教程的演示类 TemplatePatternDemo 将使用 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!
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)