Java设计模式——模版方法模式及编程示例

定义算法操作骨架,详细的操作延迟在子类中实现;而子类在不改变算法结构的情况下重新定义方法中的算法步骤;

这里的模版方法模式很容易理解;我们在开发中使用的各种前后端模版或者一些框架都是模版设计模式的体现;

特点:

  • 封装不变部分,扩展可变部分
  • 提取公共代码,便于维护
  • 行为由父类定义,子类实现

示例:定义一个game类,模拟玩游戏,模版方法play定义游戏流程,被声明为final不可被重写,子类方法重写具体的游戏过程实现;

public class TemplatePattern {
    public static void main(String[]args) {
        FootBallGame mygame = new FootBallGame();
        mygame.play();
    }
}

abstract class Game{
    abstract void initialize();
    abstract void gameStart();
    abstract void gameOver();

    public final void play(){
        //初始化游戏
        initialize();
        //开始游戏
        gameStart();
        //结束游戏
        gameOver();
    }
}

class FootBallGame extends Game{
    void initialize(){
        System.out.println("football game is initailized!!!");
    }
    void gameStart(){
        System.out.println("football game is start!!!");
    }
    void gameOver(){
        System.out.println("football game is over!!!");
    }
}

运行结果:

"/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/Home/bin/java" "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=62333:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/wesen/Desktop/Idea/designpatterntest/out/production/designpatterntest TemplatePattern
football game is initailized!!!
football game is start!!!
football game is over!!!

Process finished with exit code 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值