游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

一文看懂模板模式

  模板方法模式
  行为模型的一种
  定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模式模型
  其实可以理解为一个继承模型,父类一般为抽象类,提供几个固定的模板方法。子类继承父类,子类覆写父类未实现的方法。
  在调用的时候直接使用父类的类型来直接调用方法。
  这里有两个角色:
  抽象模板(AbstractTemplate)角色:定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。
  具体模板(ConcreteTemplate)角色实现父类所定义的一个或多个抽象方法,它们是一个顶级逻辑的组成步骤。每一个抽象模板角色都可以有任意多个具体模板角色与之对应,而每一个具体模板角色都可以给出这些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。
  来的图了,直接找网上的截图了。
  模板方法中的方法可以分为两大类:模板方法和基本方法。
  模板方法
  一个模板方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或一个总行为的方法。
  一个抽象类可以有任意多个模板方法,而不限于一个。每一个模板方法都可以调用任意多个具体方法。
  基本方法
  基本方法又可以分为三种:抽象方法(AbstractMethod)、具体方法(ConcreteMethod)和钩子方法(HookMethod)。
  抽象方法:一个抽象方法由抽象类声明,由具体子类实现。在Java语言里抽象方法以abstract关键字表示。
  具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。
  钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。钩子方法的名字建议使用do开始
  在上面的例子中,AbstractTemplate是一个抽象类,它带有三个方法。其中abstractMethod()是一个抽象方法,它由抽象类声明为抽象方法,并由子类实现;hookMethod()是一个钩子方法,它由抽象类声明并提供默认实现,并且由子类置换掉。concreteMethod()是一个具体方法,它由抽象类声明并实现。实例
  比如说我们列一天的日常计划:
  1、早上起床跑步吃早饭
  2、中午吃午饭午休
  3、晚上吃晚饭加班健身睡觉
  假设我们很自律那么每天都是按照这个计划框架来。一般都是早上才看吃什么,到中午了在看吃什么,到了晚上才知道吃什么。
  因此具体的对应吃早饭、吃午饭、吃晚饭(吃货附体)这几件事具体一点的细节我们是无法确定的。
  安静!!!
  抽象模板:publicabstractclassAbstractDailyPlan{早上起床跑步吃早饭voidmorningPlan(){System。out。println(起床了);跑步run();吃早饭doBreakfast();}跑步voidrun(){System。out。println(早期的虫儿被鸟吃);}voiddoBreakfast(){thrownewExceptionInInitializerError(早上吃啥??);}voidnoondayPlan(){System。out。println(午休了);吃午饭doLunch();午休sleepMid();}abstractvoiddoLunch();voidsleepMid(){System。out。println(huhuwujiao);}晚上吃晚饭加班健身睡觉voidnightPlan(){System。out。println(下班了);doDinner();workExtra();doexercise();sleep();}voiddoDinner(){System。out。println(减肥,不吃了);}voidworkExtra(){System。out。println(默认不加班);}abstractvoiddoexercise();voidsleep(){System。out。println(洗澡澡脱光光睡觉觉);}}
  具体模板publicclassDailyPlanMondayextendsAbstractDailyPlan{OverridevoiddoLunch(){System。out。println(吃盒饭吧);}Overridevoiddoexercise(){System。out。println(今天练习深蹲);}OverridevoiddoBreakfast(){System。out。println(豆浆烧饼);}}
  测试类:publicclassTest{publicstaticvoidmain(String〔〕args){AbstractDailyPlandailyPlannewDailyPlanMonday();早上的计划dailyPlan。morningPlan();中午的计划dailyPlan。noondayPlan();晚上的计划dailyPlan。nightPlan();}}
  输出结果:起床了早期的虫儿被鸟吃
  豆浆烧饼
  午休了
  吃盒饭吧
  huhuwujiao
  下班了
  减肥,不吃了
  默认不加班
  今天练习深蹲
  洗澡澡脱光光睡觉觉
  思考下我们例子中的方法哪些属于钩子方法,具体都是如何做的。
  封面图,侵权删。看图点赞、关注的都能中五百万

简约游戏主机搭建,B5503060TI5600X废话在前:众所周知!AMD的ZEN3对比前任ZEN2架构,各方面均有着明显的提升!更是在单核性能强势反超了INTEL,以至于目前基础款的R55600X单核性能上都可以暴踩……互联网公司这些年圈了多少地?粗略估计,仅腾讯、百度、阿里、搜狐四家买地、买楼,所持总房产价值已超1000亿,这还不算另一块更有赚头的地产类投资。本文由无冕财经(wumiancaijing)原创首发……iPhone13即将面世,你看好它吗?还记得去年iPhone12系列刚刚发布时,网上就开始流传别买12了,等王守义说的十三香的消息,瞬间引爆整个手机圈,不少果粉都将手上老款iPhone机型换上新电池,再战一年,目的……快稳省,联发科天玑新一代5G基带M80定义R16时期5G标杆众所周知,2018年冻结的3GPPR15标准,是以满足5G基本功能而诞生的能用标准。如今,R16即将落地商用,业内纷纷展示了自家的技术储备。近日,联发科集中展示了多项移动平台最……蓝牙耳机推荐因为手机是安卓的,又有iPad,每次去自习室要带两个耳机真的好麻烦自从前段时间入手了魔浪05二代这款,完美的解决了我所有的问题。特色:充电仓可以反向充电,基本就是带着充电……又没电了?自带数据线的迷你数显充电宝,颜值高,华为苹果都能用现代人,都有手机电量缺失的焦虑症。变成红色的20要焦虑,只剩半格的50要苦恼,甚至连接近满格的90都要担忧不是满格电量。就算带了充电宝,每回在打开包扒拉充电宝的时候……多氟多聚焦智能制造,由氟化工向新能源新材料转型11月1~3日,由工业和信息化部、山东省人民政府共同主办的世界先进制造业大会在山东济南召开。大会发布了《世界先进制造业大会济南宣言》,提出先进制造业是世界经济发展的主导力量、创……外国人重走长征路说,什么25000里也就13000里!金一南2002年,两位在中国生活了几年的外国博士,辞掉了工作花费了384天重走长征路,并且写了一本叫做《两个人的长征》的书。书中对长征的距离表示了明确的质疑,外国人表示自己用GPS进……智能断路器市场前景怎么样?智能断路器市场前景怎么样?断路器做为常见的配电管理设备,广泛应用于很多场景,小到家庭的日常生活、大到工业园区的生产等各个领域,在用电市场上起着举足轻重的作用,几乎所有用电……荣耀畅玩20Pro开售,售价1699元,6400万超清四摄不国庆将临,很多朋友都准备趁此机会换新机。9月17日发布即开售的荣耀畅玩20Pro,凭借超清影像、超级快充、纤薄机身、OLED真彩屏,以及极具竞争力的价格,一经上市就收获了不小的……次元美人录之侠岚辰月因三月出生,所以才得此名。温柔大方,平易近人,外柔内刚,聪颖细腻,率真善良,一丝不苟,富有同情心。战斗中有时候也展现出犹豫、怯懦的一面。坚定的朝着成为一名优秀侠……移速无线磁吸充电四件套出差旅游可以更简单对于现在的打工人来说,出差时要同时带上电脑充电宝和至少一个手机以适应不同的工作,当然不仅是设备本身,很多时候由于设备间充电功率不同,我们通常会携带两到三个充电器以满足多设备的使……
三架马车齐头并进北京经开区科技生态文化场景全域开放人民网北京9月3日电从手机一键就能召唤来的无人驾驶出租车,到效率比传统工厂提升60的小米黑灯工厂;从全国首个零碳产业园区,到凉水河经开区段成为国家级河湖样板间;从全国首个科技馆……阿里巴巴旗下的饿了么再传丑闻店铺还能伪造,平台为何不监管?2021年9月,阿里巴巴旗下的饿了么再传丑闻,在饿了么上面的店铺居然还能有伪造的。伪造店铺如此简单的问题,阿里巴巴的饿了么平台为何监管薄弱呢?对于阿里巴巴饿了么平台……网络文明有人扰乱网络秩序,快举报!扰乱网络秩序行为是互联网乐章中的不和谐音符是全体网民共同的敌人对于这类行为我们不但要勇于说不还要积极举报运用法律武器严厉打击网络文明公……如何让生产环境的JVM在OOM时自动dump内存快照假设知道自己的系统OOM了,咋办?解决OOM的初步思路OOM必然说明系统中某区的对象太多,塞满那个区,而且一定无法回收掉那些对象,最终才导致内存溢出。就得知道到底是……软件产品商标注册有没有必要?应该注册哪几类APP注册关键类主要分为9类、35类、38类和42类,很多人由于注册了这几个关键类商标就歹意攻击不在此类别的商标的APP,也有人由于没有注册到这几类商标而堕入担忧,这都是不正确……小米篇如何选择合适自己的机型21天图文打卡挑战(第二期)为发烧而生是小米的产品概念,让每个人都能享受科技的乐趣是小米公司的愿景。小米公司的产品概念和愿景不仅是一句口号,更深刻体现在小米产品上。低价格高性价……腾讯再投数字银行Qonto,50亿美元估值成法国第二大独角兽来源:新浪财经Qonto是腾讯投资的多家海外新型银行之一。法国数字银行Qonto本周宣布完成5。52亿美元D轮融资,原有投资者腾讯继续加注。Qonto本轮融资……特斯拉单踏板设计是否合理?工信部回应!据工信部官网,日前有网友就特斯拉的动能回收系统是否按规定进行申报和安全性给工信部留言。该网友表示,把动能回收功能与加速踏板相结合,让加速踏板具有制动效果,违背汽车驾驶习惯,引发……可能是因为芯片紧缺,三星取消了下半年note机型的发布,你怎在三星也有两款主打高端的手机,一个是上半年的数字系列,另外一款则是下半年的note系列,但是这些年三星的高端手机之路在市场上的认可度下降了,就连国产手机的OPPO老总在接受采访……三星Exynos2200测试成绩曝光,GPU性能出众继此前已经确认三星将与AMD进行合作,在后续推出的新款旗舰主控上采用RDNA2架构GPU后,这一新款主控在性能方面的表现也吸引了外界的诸多关注。在此前这款或将被命名为Exyno……NPC的逆袭!雷蛇首次搭载AMD,你就是高能玩家最近,小贱贱瑞恩雷诺兹的新片《失控玩家》正在热映。故事设定是主角生活在一个电子游戏里,让人切实体验了一把身临游戏是什么感觉。而雷蛇也一直致力于推动游戏设备升级,为玩家增强游戏中……哪个牌子的空气检测仪比较好?其实真的都差不多的。因为网上买的手持式都不太准。或者说什么牌子检测出来都差不多的。而且老百姓拿回来很多人就是各种不合规乱测的,因为手法不懂。比如我见过密闭三天再去测的,见……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网