代码详解设计模式--模板模式

版权声明:本文为 [博学de叫兽] 原创文章,转载请注明出处。 https://blog.csdn.net/u012102104/article/details/85774885

模板模式

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

  • 优点:
  1. 封装不变部分,扩展可变部分。
  2. 提取公共代码,便于维护。
  3. 行为由父类控制,子类实现。
  • 缺点:
  1. 每个不同实现都需要一个子类来实现。
    UML
//游戏模板类
public abstract class Game {
   abstract void initialize();
   abstract void startPlay();
   abstract void endPlay();
 
   //模板
   public final void play(){
      //初始化游戏
      initialize();
      //开始游戏
      startPlay();
      //结束游戏
      endPlay();
   }
}
// 足球游戏
public class Football extends Game {
   @Override
   void initialize() {
      System.out.println("准备足球");
   }
 
   @Override
   void startPlay() {
      System.out.println("踢足球");
   }
   
   @Override
   void endPlay() {
      System.out.println("收拾足球");
   }
}
//篮球游戏
public class Basketball extends Game {
   @Override
   void initialize() {
      System.out.println("准备篮球");
   }
 
   @Override
   void startPlay() {
      System.out.println("打篮球");
   }
   
   @Override
   void endPlay() {
      System.out.println("收拾篮球");
   }
}
//使用示例
public class Demo {
   public static void main(String[] args) {
      // 足球
      Game game1 = new Football();
      game1.play();
      
      // 篮球
      Game game2 = new Basketball();
      game2.play();      
   }
}

猜你喜欢

转载自blog.csdn.net/u012102104/article/details/85774885