设计模式——行为型模式_模板方法模式

1. 类图

模板模式的 UML 图

2. 代码

  • 总抽象类Game——提供模板
    • public abstract class Game {
         abstract void initialize();
         abstract void startPlay();
         abstract void endPlay();
       
         public final void play(){    //模板
            initialize();    //初始化游戏 
            startPlay();    //开始游戏 
            endPlay();    //结束游戏
         }
      }
    • 具体实现类
      • 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!");
           }
        }
        
        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!");
           }
        }
  • 客户端调用
    • public class TemplatePatternDemo {
         public static void main(String[] args) {
       
            Game game = new Cricket();
            game.play();
            System.out.println();
            game = new Football();
            game.play();      
         }
      }

3. 总结

优点:

  • 提供了模板,封装不变部分,扩展可变部分
  • 代码复用

注:

  • 为防止恶意操作,一般模板方法都加上 final 关键词

猜你喜欢

转载自blog.csdn.net/qq_41157876/article/details/111833471