小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不同的实现都需要一个子类来实现,导致类的个
小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
封装不变部分,扩展可变部分。
提取公共代码,便于维护。
行为由父类控制,子类实现。
每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
有多个子类共有的方法,且逻辑相同。
重要的、复杂的方法,可以考虑作为模板方法。
假设一个场景,我们在玩游戏的时候,都需要初始化加载游戏,然后开始游戏,最后结束游戏,这像是一套模板一样的操作,但是具体的实现方法却不同,例如:LOL 游戏与 CF 游戏的加载资源肯定不同,游戏的内容也不同。
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(); }}
package com.asurplus.common.template;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class LolGame extends Game { @Override void init() { log.info("初始化 LOL 游戏"); } @Override void start() { log.info("LOL 游戏开始"); } @Override void end() { log.info("LOL 游戏结束"); }}
package com.asurplus.common.template;import lombok.extern.slf4j.Slf4j;@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中模板模式怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!
--结束END--
本文标题: Java中模板模式怎么用
本文链接: https://lsjlt.com/news/323581.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0