轻松掌握Java模板模式

 更新时间:2021年08月09日 15:40:44   作者:断了联系  
这篇文章主要帮助大家轻松掌握Java模板模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

特点:

1、封装不变部分,扩展可变部分。

2、提取公共代码,便于维护。

3、行为由父类控制,子类实现。

企业级开发和常用框架中的应用:spring中对hibernate的实现(开启事务,打开会话,关闭session)

实例:下面以玩游戏举例,所有游戏玩的时候都有两个操作,打开游戏和关闭游戏,但中间玩的方式就不一样了,下面看实际例子。

public class Demo {
 public static void main(String[] args) {
 Game g1 = new LOL();
 Game g2 = new CF();
 g1.playGame();
 g2.playGame();
 }
}

abstract class Game{
 protected void init(){
 System.out.println("初始化游戏并登陆游戏。。。");
 }
 public abstract void play();
 protected void end(){
 System.out.println("结束游戏并退出登录。。。");
 }
 public void playGame(){
 init();
 play();
 end();
 }
}

class LOL extends Game{
 public void play() {
 System.out.println("玩英雄联盟游戏");
 }
}

class CF extends Game{
 public void play() {
 System.out.println("玩创越火线游戏");
 }
}

模板模式其实就是抽象类的应用,这个模式比较简单,而且在实际开发中也用的比较多。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java中的三元运算(三目运算)以后用得到!

    Java中的三元运算(三目运算)以后用得到!

    Java提供了一个三元运算符,可以同时操作3个表达式,下面这篇文章主要给大家介绍了关于Java中三元运算(三目运算)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Spring boot随机端口你都不会还怎么动态扩容

    Spring boot随机端口你都不会还怎么动态扩容

    这篇文章主要介绍了Spring boot随机端口你都不会还怎么动态扩容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 使用JavaSE来模拟斗地主

    使用JavaSE来模拟斗地主

    这篇文章主要介绍了使用JavaSE来模拟斗地主,对棋牌游戏有研究的同学可以参考一下
    2021-04-04
  • Hikari 数据库连接池内部源码实现的小细节

    Hikari 数据库连接池内部源码实现的小细节

    这篇文章主要介绍了Hikari 数据库连接池内部源码实现的小细节,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Spring项目中使用Junit单元测试并配置数据源的操作

    Spring项目中使用Junit单元测试并配置数据源的操作

    这篇文章主要介绍了Spring项目中使用Junit单元测试并配置数据源的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java值得使用Lambda的8个场景合集

    Java值得使用Lambda的8个场景合集

    可能对不少人来说,Lambda显得陌生又复杂,觉得Lambda会导致代码可读性下降,但毕竟2023年了,JDK都出了那么多新版本,是时候试试Lambda了
    2023-08-08
  • springboot读取application.yml报错问题及解决

    springboot读取application.yml报错问题及解决

    这篇文章主要介绍了springboot读取application.yml报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • MybatisPlus3.5.5与pagehelper starter2.1.0冲突的问题解决

    MybatisPlus3.5.5与pagehelper starter2.1.0冲突的问题解决

    在使用MybatisPlus 3.5.5与PageHelper Starter 2.1.0时,由于引用了不同版本的jsqlparser库(4.6与4.7),会导致运行时错误,解决方案涉及确认依赖版本,本文就来介绍一下,感兴趣的同学可以下载学习
    2024-10-10
  • Java中基于Nacos实现Sentinel规则持久化详解

    Java中基于Nacos实现Sentinel规则持久化详解

    这篇文章主要介绍了Java中基于Nacos实现Sentinel规则持久化详解,Sentinel Dashboard中添加的规则数据存储在内存,微服务停掉规则数据就消失,在⽣产环境下不合适,我们可以将Sentinel规则数据持久化到Nacos配置中⼼,让微服务从Nacos获取规则数据,需要的朋友可以参考下
    2023-09-09
  • SpringBoot2.x漏洞将logback1.2.x 升级至1.3.x

    SpringBoot2.x漏洞将logback1.2.x 升级至1.3.x

    安全部门在代码漏洞扫描中发现logback 1.2.x版本存在CVE漏洞,建议升级至1.3.x版本,本文就来介绍了logback1.2.x 升级至1.3.x,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09

最新评论