设计模式-13-模板方法模式

来源:互联网 发布:淘宝代收货是什么意思 编辑:程序博客网 时间:2024/06/07 20:28

在模板模式:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

定义游戏的模板

package com.actionPattern.gabarit.edition1;public abstract class Game {   abstract void initialize();   abstract void startPlay();   abstract void endPlay();   //模板 设置成final 不让子类覆盖,固定游戏执行的顺序   public final void play(){      //初始化游戏      initialize();      //开始游戏      startPlay();      //结束游戏      endPlay();   }}

定义实际的游戏

package com.actionPattern.gabarit.edition1;//板球游戏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!");   }}
package com.actionPattern.gabarit.edition1;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!");   }}

测试

package com.actionPattern.gabarit.edition1;public class TemplatePatternDemo {   public static void main(String[] args) {      Game game = new Cricket();      game.play();      System.out.println("**************");      game = new Football();      game.play();         }}
原创粉丝点击