模版模式-封装算法结构

定义:在一个方法中定义一个算法的顾家,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

类图

示例

public abstract class GameTemplate {
    final void playGame(){
        startGame();
        play();
        endGame();
    }
    void startGame(){
        System.out.println("游戏开始!");
    }
    abstract void play();
    void endGame(){
        System.out.println("游戏结束");
    }
}

public class MarioGame extends GameTemplate {
    @Override
    void play() {
        System.out.println("正在运行-超级马里奥!");
    }
}

public class ZeldaGame extends GameTemplate {
    @Override
    void play() {
        System.out.println("正在运行-塞尔达传说");
    }
}

public class Client {
    public static void main(String[] args){
        GameTemplate mario = new MarioGame();
        mario.playGame();
        GameTemplate zelda = new ZeldaGame();
        zelda.playGame();
    }
}

运行结果

 其他

  • 抽象类可以决定算法中的哪些步骤必须被重写。
  • 抽象类中可以使用钩子,让子类可以控制算法的某些步骤。

猜你喜欢

转载自www.cnblogs.com/camcay/p/12360384.html