Java模板模式

Java模板模式

在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。 它的子类可以根据需要重写方法实现,但调用的方式与抽象类定义的方式相同。 此模式属于行为模式类别。

实现实例

在这个实现实例中,将创建一个Game抽象类,它定义了一个模板方法设置为final的操作,因此它不能被覆盖。 CricketFootball 是扩展Game并覆盖它的方法的具体类。

TemplatePatternDemo是一个演示类,将使用Game演示使用模板模式。

模板模式示例的结构如下图所示 -

[图片上传失败...(image-bfee7b-1545704492141)]

第1步

创建一个模板方法为final的抽象类。
Game.java

public abstract class Game {
   abstract void initialize();
   abstract void startPlay();
   abstract void endPlay();

   //template method
   public final void play(){

      //initialize the game
      initialize();

      //start game
      startPlay();

      //end game
      endPlay();
   }
}


Java

第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!");
   }
}


Java

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!");
   }
}


Java

第3步

使用游戏的模板方法-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();
   }
}


Java

第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!
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 下面总结设计模式中的行为型模式: 1.责任链模式 顾名思义,责任链模式(Chain of Responsibili...
    Steven1997阅读 3,758评论 0 1
  • 模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类...
    小陈阿飞阅读 201评论 0 1
  • 转:http://www.runoob.com/design-pattern/template-pattern.h...
    right_33cb阅读 192评论 0 0
  • 模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类...
    小蜗牛Snail丶阅读 269评论 0 0
  • 【R阅读原文片段】 提高觉察力和责任感最有效的问题应以寻求量化或收集事实的词语开始,比如“什么”,“何时”,“谁”...
    章银武之阅读 280评论 3 0

友情链接更多精彩内容