java三种常用设计模式和实例,请简单实现模板模式的示例代码
00-1010优缺点使用场景1、实现方式1、游戏抽象类2、LOL游戏类3、CF游戏类2、测试总结
00-1010封装不变部分,扩展可变部分。
提取常用代码,方便维护。
行为由父类控制,由子类实现。
00-1010每一个不同的实现都需要一个子类来实现,这就导致了类的数量增加,使得系统更加庞大。
00-1010 1.有多个子类共享的方法,逻辑是一样的。
2.重要而复杂的方法,可以认为是模板方法。
00-1010假设一个场景,我们在玩游戏的时候,都需要初始化和加载游戏,然后开始游戏,最后结束游戏。这就像是一套模板操作,只是具体实现方式不同。比如LOL游戏和CF游戏的加载资源肯定不一样,游戏的内容也不一样。
目录
包com . asur plus.common . template;/* * *游戏抽象类*/公共抽象类Game {//初始化游戏抽象void init();//启动游戏抽象void Start();//结束游戏抽象void End();//模板公共最终void play() {//初始化游戏init();//启动游戏start();//结束游戏end();}}
优点
包com . asur plus.common . template;导入lombok . extern . SLF 4j . SLF 4j;/** * LOL game */@ slf4jpublic类LOL game扩展game { @ override void init(){ log . info(初始化LOL game );} @ override void start(){ log . info( LOL游戏开始);} @ override void end(){ log . info( LOL游戏结束);}}
缺点
包com . asur plus.common . template;导入lombok . extern . SLF 4j . SLF 4j;/* * * CF game */@ SLF 4j public class CF game extends game { @ override void init(){ log . info( initialize CF game );} @ override void start(){ log . info( CF游戏开始);} @ override void end(){ log . info( CF游戏结束);}}
使用场景
包com . asur plus.common . template;/* * *模板模式*/公共类测试main { public static void main(string[]args){//lol Game lol Game=new lol Game();lol game . play();system . out . println();//CF Game Game CF Game=new CF Game();cf game . play();} }输出结果
可以看出,一套模板可以通过多种方式实现,从而实现了我们的工厂模式。
一、实现方式
本文到此为止。希望它能帮到你,也希望你能多关注更多的盛行它的内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。