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

一文带你看懂装饰者模式

  装饰者模式
  装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀;
  主要角色:组件(Component):组件接口定义了全部组件类和装饰器实现的行为;组件实现类(ConcreteComponent):实现Component接口,组件实现类就是被装饰器装饰的原始对象,新功能或者附加功能都是通过装饰器添加到该类的对象上的;装饰器抽象类(Decorator):实现Component接口的抽象类,在其中封装了一个Component对象,也就是被装饰的对象;具体装饰器类(ConcreteDecorator):该实现类要向被装饰的对象添加某些功能;
  类图:
  看具体的例子,就拿去火锅店吃火锅拌蘸料这个来说。
  蘸料有很多:
  而每个人的口味又不一样。所以组合就非常多。这种情况下如果使用装饰着模式来实现看看。
  第一步
  首先我们有一个行为拌蘸料(Component)Author:jimmyDescription:装饰着模式组件(Component):组件接口定义了全部组件类和装饰器实现的行为;publicinterfaceAllocatSeasoning{voidallo();}
  接下来,按照上面装饰者的模型进行分析,我们需要2个类来实现上面的行为
  第二步
  第一个类(ConcreteComponent)可以理解为装拌料的碗,后面的加蘸料都放到这个碗里面Author:jimmyDescription:组件实现类(ConcreteComponent):实现Component接口,组件实现类就是被装饰器装饰的原始对象,新功能或者附加功能都是通过装饰器添加到该类的对象上的;可以把这个理解为装拌料的碗publicclassAllocDoimplementsAllocatSeasoning{Overridepublicvoidallo(){System。out。println(您好,这边是调料自选区,可以按照您的口味选择自己喜欢的口味);}}
  第三步
  第二个类,这个类可以理解为抽象Author:jimmyDescription:装饰器抽象类(Decorator):实现Component接口的抽象类,在其中封装了一个Component对象,也就是被装饰的对象;这个对象可以理解为已经准备好了,要去拿蘸料的动作的父级。AllocatSeasoning可以理解为蘸料和婉的合体。publicclassAllocDecoratorimplementsAllocatSeasoning{持有对象privateAllocatSeasoningallocatSeasoning;构造器publicAllocDecorator(AllocatSeasoningallocatSeasoning){this。allocatSeasoningallocatSeasoning;}调用对下个对应的方法Overridepublicvoidallo(){allocatSeasoning。allo();}}
  第四步
  放具体的蘸料(ConcreteDecorator)这里说白了就是拿着放有蘸料的碗(可以是空碗)来放现在想放的蘸料。我这里只给出了一个具体类,其他的有兴趣可以把代码复制,然后补充下。Author:jimmyDescription:具体装饰器类(ConcreteDecorator):该实现类要向被装饰的对象添加某些功能;这里说白了就是拿着放有蘸料的碗(可以是空碗)来放现在想放的蘸料publicclassGarlicAllocextendsAllocDecorator{publicGarlicAlloc(AllocatSeasoningallocatSeasoning){super(allocatSeasoning);}Overridepublicvoidallo(){调用原有业务方法super。allo();补充我们这个行为的方法addGarlic();}publicvoidaddGarlic(){System。out。println(加蒜);}}
  测试类publicclassDecoratorClinet{publicstaticvoidmain(String〔〕args){AllocatSeasoninganewOilAlloc(newGarlicAlloc(newChilliAlloc(newAllocDo())));a。allo();}}
  运行结果:您好,这边是调料自选区,可以按照您的口味选择自己喜欢的口味
  加辣椒
  加蒜
  加油

印军研发新型高原帐篷,一个卖40万,网友这不就是蔬菜大棚吗?众所周知,印度是个非常有野心的国家,此前在国际局势非常不稳定的情况下,印度试图侵占邻国土地,如此一来,就需要部署大量的士兵,而当时正值寒冬,理应有大量的保暖设备,但印度并没有准……拆装用三步走零难度带你使用小米净水器H600G序:当前家庭生活中,能有哪些产品可以带来生活幸福感?相信很多人的答案是不一样的,但是对于我个人来说,使用净水器是非常能够提升幸福指数的,家中老人小孩一起在,所以对于日常喝……国务院重磅发文2030年新能源汽车将达1000万辆电车汇消息:昨日,国务院印发2030年前碳达峰行动方案,要求各地区有关部门要切实担责、严格落实。方案提出,大力推广新能源汽车,逐步降低传统燃油汽车在新车产销和汽车保有量中的占比……最坏的交易还未到?用哲学的思想看待亏损在之前有关斯多葛交易者的文章中,我们简要地看了古罗马时期留给后人的生活和智慧,以及交易,如何成为我们执行斯多葛学派教义的好机会。今天,我们将讨论爱比克泰德,古罗马最著名的……智能衣帽间一款能改善睡眠质量的衣柜为什么家里要有一款智能衣柜?蠕形螨的危害,你知道吗?螨虫尸体、分泌物和排泄物都是过敏源,导致脸部出现红斑、毛孔扩大,皮肤越变粗糙,并有脱皮现象;鼻部周围……700元微星B460主板业界标杆!变身Z490破解超频4千4上个文章提及的ASUS开始借鉴并学习MSI的策略,这说明了,MSI真的成功了。微星B460M迫击炮主板,基本上成为了B460主板的业界标杆,最顶端的巅峰存在,……凭什么说AT比双离合更好?老司机用过的都知道,优势太明显说到汽车变速箱,争议点其实挺多的。一台变速箱好不好,影响的因素有很多,比如传动效率、换挡逻辑、平顺性和驾驶体验等等。但是真正的好,可不仅仅是依靠冷冰冰的数据,口碑才是真正的衡量……网友作品力证一加9Pro拍照实力,可以闭眼入的影像机皇在五一当天,一加手机开启了名为五月敞开拍的摄影大赛,赛事在5月21日落下帷幕。各路摄影爱好者通过手中的一加9系列手机,在超广角、微距、人像以及抖音视频四大赛道,分享了大量让人惊……支付宝推出黑科技识海鲜服务,海鲜小白也能玩转海鲜市场如果你想快速地了解一个城市,那就去看看这个城市的菜市场吧!这句话如果对应三亚的话,那一定是当地丰富的海鲜市场啦!这其中最有人气的还要数火车头万人海鲜广场、第一农贸市场、春园海鲜……主板和显卡是如何给CPU和GPU供电的?就如电源是PC的心脏一样,主板和显卡上的供电模块也是它们各自的心脏,搭载在身上的各种芯片能否正常工作,就看它们的供电电路是否足够强悍了。因此在我们的显卡和主板评测中,它们的供电……Arducam8MP重磅来袭,为树莓派4B构建完全同步的双摄大家好,我是小月月。双目立体景深一直是很热门的项目,最近已经有不少小伙伴学会在树莓派上插两个USB摄像头了,这个方案可以识别静态场景中各个物体的距离远近。但是两个USB摄像头捕……海外财经媒体焦点美银料原油期货到明年年中将触及每桶120美元财联社11月2日讯,隔夜,海外市场聚焦美国经济、公司动态以及大宗商品市场。美国经济方面,美国面临上世纪70年代以来最严重供应链问题,短缺成美联储年度词汇;美国10月制造业成长放……
华为遭遇滑铁卢?鸿蒙系统还在推送,但商标却没了自华为鸿蒙系统正式开始推送后,就总是在热搜榜单上不下来,最近又有消息传出,华为鸿蒙系统因知识产权问题与国家知识产权局在打官司。原来,在2019年的时候华为就申请注册鸿蒙商……饿了么被罚款50万因利用虚假或使人误解价格诱骗交易!网友调侃中国小康网讯相信大家都遇到过这样的情况:工作后下班回家,疲劳的身体向大脑发送着我不想做饭,不想动,但我想吃顿好的信号,这时候外卖软件属实是个不错的选择,简单的动动手指,无数的美……全球销量7650万,在华份额仅0。6,三星手机在中国落幕了?根据知名机构Counterpoint发布的《全球智能手机市场数据报告》显示,三星手机已经成为世界上销量最多的智能手机品牌,三星手机的出货量创下历史新高,与同期相比增长了47。……用了大半个月,一加9R玩游戏怎么样?听听真实用户怎么说之前有朋友问我迪迦奥特曼代言的一加9R玩游戏怎么样?如今我将一加9R作为主力机已经快大半个月了,平时玩玩《王者荣耀》、《和平精英》以及《原神》等手游,老实讲这些过程给我的体验还……苹果AppStore于2020年阻止了超过15亿美元的潜在诈中证网讯(记者张兴旺)5月12日,苹果发布消息称,苹果对涉嫌欺诈的开发者和用户进行检测并采取行动,协助保证AppStore能为用户提供一个安全可靠、值得信赖的地方来探索app。……央视终于曝光了,那些互联网套路,你遇过几个?我感觉最流氓的软件,当属爱奇艺视频了,当时为了看一部电视剧,就开通了爱奇艺会员,开会员的时候,那叫一个方便,每一步给你安排的明明白白的,让你看后一目了然,知道自己需要开哪种会员……无人驾驶概念再度走强,长安汽车涨停,机构看好细分赛道相关标的金融界网5月12日消息,无人驾驶概念早盘大幅拉升,亚太股份、长安汽车涨停,润和软件、诚迈科技、北汽蓝谷、路畅科技等多股跟涨。此前,4月17日,北汽新能源旗下高端品牌极狐联……pythontkinter,通过lambda表达式传递参数到给tkinter的按钮添加点击事件处理函数,可以在创建按钮时将定义好的函数赋值给它的command属性,即tk。Button(window,textthisisabutton,……当你老了,你想有一个什么样的生活?当你老了,你想有一个什么样的生活?答:一、社会安定团结,没有坑、蒙、拐、骗,虚假、秀、作、炫、忽悠;二、有饭吃、有衣穿、有地方住,孩子有学上。三、看得起……微软收购动视暴雪,解密元宇宙的资本逻辑元宇宙,新的流量入口;元宇宙,新的硬件需求:触发几何级数的计算量和存储量,进一步触发对芯片等硬件的需求;元宇宙,新的软件需求:要求更高级的建模,开启相应的开发软件和……手机被远程监控怎么破解?手机如果不幸被远程监控了,用三招就可以轻松破解,再用三招可以防范于未然。三招可破解可解除手机被远程监控1、恢复出厂设置这一招是手机解决软件故障和系统故障的终极大招。……为什么8700k和9700k卖一个价格呢?现在酷睿8700K盒装的价格在2700元左右,9700K则在3000元左右,还是比8700K贵一些的,毕竟物理核心数比8700K多了两个,同样是14nm工艺下芯片面积和成本应该……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网