模板方法模式

模板方法模式(Template pattern)属于行为模式,用于定义构建某个对象的步骤与顺序,或者定义一个算法的骨架。可以在一个抽象类公开定义执行它的包含执行顺序方法的方法,它的子类可以按需要重写方法实现。

demo:

游戏的模板抽象类:

public abstract class Game {
    // 子类需要实现的方法
    public abstract void startGame();
    public abstract void endGame();

    // 统一实现方法
    public void initialize() {
        System.out.println("initialize game");
    }

    // 顺序调用,用final修饰防止子类误操作
    public final void play() {
        initialize();
        startGame();
        endGame();
    }
}

具体的游戏类的实现:

public class LolGame extends Game {
    @Override
    public void startGame() {
        System.out.println("start LOL");
    }
    @Override
    public void endGame() {
        System.out.println("end LOL");
    }
}

public class AngryBirdGame extends Game {
    @Override
    public void startGame() {
        System.out.println("start AngryBird");
    }
    @Override
    public void endGame() {
        System.out.println("end AngryBird");
    }
}

调用:

Game game = new LolGame();
game.play();
game = new AngryBirdGame();
game.play();

输出结果:

initialize game
start LOL
end LOL

initialize game
start AngryBird
end AngryBird

优点: 封装不变部分,扩展可变部分。 提取公共代码,便于维护。 行为由父类控制,子类实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值