Java中模板模式怎么用
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不
千家信息网最后更新 2024年11月11日Java中模板模式怎么用
小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
优点
封装不变部分,扩展可变部分。
提取公共代码,便于维护。
行为由父类控制,子类实现。
缺点
每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
使用场景
1.有多个子类共有的方法,且逻辑相同。
2.重要的、复杂的方法,可以考虑作为模板方法。
一、实现方式
假设一个场景,我们在玩游戏的时候,都需要初始化加载游戏,然后开始游戏,最后结束游戏,这像是一套模板一样的操作,但是具体的实现方法却不同,例如:LOL 游戏与 CF 游戏的加载资源肯定不同,游戏的内容也不同。
1、游戏抽象类
package com.asurplus.common.template;/** * 游戏抽象类 */public abstract class Game { // 初始化游戏 abstract void init(); // 开始游戏 abstract void start(); // 结束游戏 abstract void end(); // 模板 public final void play() { // 初始化游戏 init(); // 开始游戏 start(); // 结束游戏 end(); }}
2、LOL游戏类
package com.asurplus.common.template;import lombok.extern.slf4j.Slf4j;/** * LOL游戏 */@Slf4jpublic class LolGame extends Game { @Override void init() { log.info("初始化 LOL 游戏"); } @Override void start() { log.info("LOL 游戏开始"); } @Override void end() { log.info("LOL 游戏结束"); }}
3、CF游戏类
package com.asurplus.common.template;import lombok.extern.slf4j.Slf4j;/** * CF游戏 */@Slf4jpublic class CfGame extends Game { @Override void init() { log.info("初始化 CF 游戏"); } @Override void start() { log.info("CF 游戏开始"); } @Override void end() { log.info("CF 游戏结束"); }}
二、测试
package com.asurplus.common.template;/** * 模板模式 */public class TestMain { public static void main(String[] args) { // LOL 游戏 Game lolGame = new LolGame(); lolGame.play(); System.out.println(); // CF 游戏 Game cfGame = new CfGame(); cfGame.play(); }}
输出结果
可以看出,一套模板,可以有多个实现方式,从而实现了我们的工厂模式。
看完了这篇文章,相信你对"Java中模板模式怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
模板
模式
不同
方法
子类
场景
多个
方式
游戏类
篇文章
部分
复杂
相同
重要
个数
代码
优点
内容
完了
工厂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
pm 软件开发
枣庄机房服务器
济南服务器机柜报价
大学生软件开发刚入职
房山区智能网络技术服务保障
莱芜戴尔服务器代理供应商
数据库给权限
汛芯网络技术
智能停车场的网络技术
软件开发过程使用的软件
ibm服务器怎样释放滑索
linux服务器搭建教程外包
东莞瑞庭网络技术
90后互联网科技有限公司
要求翻译软件开发
养殖场智能管理系统软件开发
小学生网络安全知识活动总结
网络安全手抄报图片头像背影
简述软件开发的流程6
收费英文全文数据库
服务器的数据库在哪里
宿迁成本控制软件开发平台
idea动态查询数据库数据
数据库的创建和管理实验总结
ftp同步 多台服务器
互联网电商科技股
操作数据库的方式有几种
掌握的网络技术有什么
广东服务器风扇供应商云空间
网络安全微课大赛优秀作品