Java中模板模式怎么用
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
网络安全专家排行榜
李沧区ios软件开发哪家靠谱
wps数据库动态更新
增城网络安全运维公司
ef备份数据库
数据库安全协议
还可以提供图片检索的数据库是
领域模型与数据库
圆通速递软件开发
广东幼儿园网络安全教育视频
广电hfc网络技术
培训软件开发定制
使命召唤17登陆不上服务器
江苏智能服务器货源充足
广州艾飞软件开发
电子合同软件开发公司
炫屏联动素材服务器
网络安全对抗队名
基于国产数据库搭建
南京昆石网络技术有限公司许石
畅达车连网络技术有限公司
时间与数据库
学习数据库系统课程的好处
如何成为企业微信服务器
网络安全美亚柏科最新资讯
软件开发知识总结
ao服务器
系统软件开发需要哪些知识
swift网络安全
数据库技术题库