Java中模板模式怎么用
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不
千家信息网最后更新 2025年02月19日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安全错误
数据库的锁怎样保障安全
深圳华强北软件开发有限公司
浪潮2017软件开发面试
数据库表单怎么建立
网络安全的应用的概念
网络安全保护纳入年度考核
网络安全法第三十六条内容
江阴重型软件开发服务电话
国内网络安全大学排名
软件开发的基本问题
网络安全给军事造成的影响
扫一扫网络安全倡议书
服务器和端口是在猫上吗
相约广西北海共建网络安全
幻塔服务器改名
邯郸互联网软件开发多少钱
it数据库面试问题及解析
地铁显示连接不了服务器
直播app服务器
软件开发跳槽简历怎么写
湖州企业软件开发流程
深圳华强北软件开发有限公司
搭建青龙需要啥服务器
上海京颐软件开发怎么样
网络安全防护概念
电影院数据库完整性约束条件
邮件服务器收发端口
山东人工智能软件开发价钱
同盾数据库
辨别软件开发语言
教师网络安全十条戒律