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

Java设计模式之享元模式

  一、概述
  享元模式:享就是分享之意,指一物被众人共享,而这也正是该模式的宗旨所在。
  享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者说是不变化的部分抽取出来形成一个对象。这个对象就可以避免修改的问题。
  享元的目的是为了减少不会要额内存消耗,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗。二、示例
  下面我们来看一个简单的例子:
  建筑接口:JianZhupublicinterfaceJianzhu{voiduse();}
  体育馆实现类:TiYuGuanpublicclassTiYuGuanimplementsJianzhu{privateStringname;privateStringshape;privateStringyundong;publicTiYuGuan(Stringyundong){this。setYundong(yundong);}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this。namename;}publicStringgetShape(){returnshape;}publicvoidsetShape(Stringshape){this。shapeshape;}publicStringgetYundong(){returnyundong;}publicvoidsetYundong(Stringyundong){this。yundongyundong;}Overridepublicvoiduse(){System。out。println(该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:yundong形状为:shape名称为:name);}}
  建筑工厂类:JianZhuFactoryimportjava。util。;publicclassJianZhuFactory{privatestaticfinalMapString,TiYuGuantygsnewHashMapString,TiYuGuan();publicstaticTiYuGuangetTyg(Stringyundong){TiYuGuantygtygs。get(yundong);if(tygnull){tygnewTiYuGuan(yundong);tygs。put(yundong,tyg);}returntyg;}publicstaticintgetSize(){returntygs。size();}}
  测试类:ClienterpublicclassClienter{publicstaticvoidmain(String〔〕args){Stringyundong足球;for(inti1;i5;i){TiYuGuantygJianZhuFactory。getTyg(yundong);tyg。setName(中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆);tyg。setShape(圆形);tyg。use();System。out。println(对象池中对象数量为:JianZhuFactory。getSize());}}}
  执行结果:该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:足球形状为:圆形名称为:中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆对象池中对象数量为:1该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:足球形状为:圆形名称为:中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆对象池中对象数量为:1该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:足球形状为:圆形名称为:中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆对象池中对象数量为:1该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:足球形状为:圆形名称为:中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆对象池中对象数量为:1该ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆被使用来召开奥运会运动为:足球形状为:圆形名称为:中国ahrefhttps:www。q578。coml70targetblankclassinfotextkey体育a馆对象池中对象数量为:1三、模式解析
  如上示例中,使用工厂模式进行配合,创建对象池,测试类中的循环,你可以想象成为要举行5场比赛,每场比赛的场地就是体育馆
  通过执行结果可以看出,在这个对象池(HashMap)中,一直都只有一个对象存在,第一次使用的时候创建对象,之后的每次调用都用的是那个对象,不会再重新创建。
  其实在Java中就存在这种类型的实例:String。
  Java中将String类定义为final(不可改变的),JVM中字符串一般保存在字符串常量池中,这个字符串常量池在jdk6。0以前是位于常量池中,位于永久代,而在JDK7。0中,JVM将其从永久代拿出来放置于堆中。
  我们使用如下代码定义的两个字符串指向的其实是同一个字符串常量池中的字符串值。Strings1abc;Strings2abc;
  如果我们以s1s2进行比较的话所得结果为:true,因为s1和s2保存的是字符串常量池中的同一个字符串地址。这就类似于我们今天所讲述的享元模式,字符串一旦定义之后就可以被共享使用,因为他们是不可改变的,同时被多处调用也不会存在任何隐患。四、使用场景
  当我们项目中创建很多对象,而且这些对象存在许多相同模块,这时,我们可以将这些相同的模块提取出来采用享元模式生成单一对象,再使用这个对象与之前的诸多对象进行配合使用,这样无疑会节省很多空间。
  在JDK中整型的包装类型内部就都使用了享元模式,Byte、Short、Integer、Long内部均对128127的值缓存起来,共享使用。
  更常见的是Java中的各种池:数据库连接池、线程池等,也是这个思想。

将太阳能从太空送到地球,变成电流,即将进入大规模商用阶段图片:AFRL的空间太阳能增量和示范研究项目由几个小型飞行实验组成,这些实验将成熟建立太阳能配电系统原型所需的技术。在不久的将来,从太空收集并发射到地球上的太阳能可以为全……涨价到2000元!1660S6G还有性价比吗?鲁大师20万虽然近期显卡市场非常痛苦,折磨的消费者很是难过。但是魔改君还是想办法从市场上搞到了一些好玩的东西:1,影驰1660S6G乞丐骁将版2,影驰1660S6G金属大……DxoMark评价华为P50Pro,未来竞品的比较标准在华为P50系列发布以后,不少人的第一反应是去看一下DxOMark的榜单和评语。果然,依然是DxoMark玩的一直很溜的手法,华为P50Pro总分又以一分的优势登顶成为第一。……畅享娱乐从不将就,坚果J10旗舰颠覆体验娱乐是一种让人感觉到快乐有趣的活动,它作为日常生活的消遣,不仅能满足我们的精神需求,还能有效转移我们的注意力,有意识的调整我们当下的状态,是我们释放负面情绪和内在压力的有效途径……还是曲面屏!三星S21设计图再曝光,前置镜头有点太惊喜最近三星S21手机被曝光的消息已经是越来越频繁,而从整合的消息来看,明年的三星S21将很有可能是高通骁龙875的首发机型,同时还将还有一个搭载自己Exynos2100处理器的版……去掉水印你能看出这些照片出自国产手机?X60Pro样张赏析在众多手机厂商发力影像的情况下,vivo的表现相当突出,不但面向全球市场推出了影像IPvivo影像,还围绕该主题,举办了好几次摄影大赛,吸引了众多摄影爱好者参与,给我们带来了许……比CPU强太多!真正的吊打英特尔,AMD最良心散热器灯效爆炸众所知周,AMD作为一家老牌的散热器厂商,推出过众多优秀的散热器,但要说到目前最火的AMD信仰散热器,那就是伴随ZEN架构更新的全新幽灵系列散热,其中最火的就是在2700X、3……小米2020年Q3财报公布,果真是丰收的季节2020年这个秋季,成为小米有史以来最为丰收的季节,722亿的营收远超预期,调整后净利润达到41亿,同比上涨了18。9,所经营的领域也都实现多点开花!智能手机业务:第三季……从0xGames停运说起,谈谈区块链游戏圈里的恶性循环世界上没有不散场之酒席,所有的好事都可能出現结束的那一天。而对于0xGames区块链游戏工作室来讲,这一切早出现。。。。。。因为0xGames突然宣布关闭!对于区块链游戏……家用商用中央空调的区别及特点商用中央空调概述商用中央空调一般用于商业领域,场所也是各行各业,五花八门,根据商业的特点应用十分广泛。1。商用中央空调的分类有:吸顶机、天花机、风管机、智能多联机、……小身材大能量翼联EDUP1683千兆双频USB无线网卡带你自毫无疑问,WiFi已经成为人们生活的一部分。笔记本和手机联接WiFi轻而易举,台式机怎么办?拆机插卡装驱动,有没有简单的无线上网方式?小白玩家如何是好?翼联EDUP168……孙娄南村概况孙娄南村与孙娄东村及孙娄西村合称《孙娄店》,因村庄人口众多,解放前就已经形成了三个自然村。孙娄南村位于稷下街道办事处以西一千三百米处,原有土地东边与孙娄东村接壤,东南与雪宫街道……
被传收购魅族,吉利在下一盘什么棋?中新经纬1月25日电(付玉梅)吉利造手机来势汹汹。近日有消息称,吉利集团旗下手机公司星纪时代正与手机厂商魅族接触洽谈收购事宜,目前处于尽职调查阶段。吉利回应中新经纬称,我……腾讯变了点蓝字关注,不迷路连接超过12亿用户的能力,是腾讯的核心优势。如何围绕这一能力变现,是腾讯每次面对时代转折时的最本质考验。1。0版本的赋能,腾讯应用于自身,将连接能……发布软文要找些软文营销平台吗?这个真不好回答,因为太多了,而且,每天都在更新。基本上只要在百度上一搜软文发布平台,每天的内容都差异巨大。专业一点好一点的软文推广平台U传播、软文街这些还好,几年了,基本上都保……中国移动与中国广电牵手共建700M网络中国移动和中国广电官宣牵手,开始共建共享700Mhz频段5G无线接入网。预示着行业内一直传言的中国移动和中国广电的合作正式的靴子落地,中国的5G建设开始了中国移动加中国广电VS……一加10Pro搭载Pixelworks视觉显示技术让屏幕的显各种亮度下均能保证真实色彩与舒适观感上海2022年1月11日美通社领先的创新视频和显示处理解决方案提供商Pixelworks,Inc。(纳斯达克股票代码:PXLW)逐点半……有望成最便宜的5G平板?台电T405G版将重新定义性价比5G作为当前消费市场先锋,目前各大厂商先后进入到5G平板市场,首先是小米、荣耀率先布局,后来者居上,如今台电与酷比也将推出5G平板。事实上,台电早在4月份便已经曝光了首款5G平……元宇宙产业委员会首批成员接纳名单公布中国移动(600941)通信联合会元宇宙产业委员会首批成员接纳名单公布。首批名单从267家申报个人和单位中经合规审核后接纳65家人(个人成员25人,单位成员40家,上市公司8家……500多项测试全部通过,vivoOriginOS获泰尔实验室随着人们安全保护意识的不断增强,如何更好的守护自己的隐私数据,就成为了大家最关心的事情。目前来看,智能手机已经逐渐取代笔记本和台式机,成为了我们使用频率最高的电子设备,因此拥有……iPhone13发布,爆料都在这了预计本次发布会将推出iPhone13系列手机,AppleWatchSeries7以及AirPods3等产品。有关iPhone13的性能、配置也有着不少猜测。总结下来,主要……扎堆9月,国内厂商宣布发布会时间,小米绿厂选择与苹果硬刚2021年的金九,手机圈属实有点热闹。苹果公司正式宣布,北京时间9月15日凌晨1点举行特别活动,所谓的特别活动便是苹果一年一度的秋季发布会,届时iPhone13系列手机将……可溶解智能手表问世外壳在水中40小时内溶解可溶解智能手表问世外壳在水中40小时内溶解黄显团队研发的可溶解智能手表受访者供图成果播报科技日报讯(记者陈曦通讯员赵晖)当世界钟表行业还在研究如何增强手表的防……美国50年前登月,但是据说月球早晚温差几百度,宇航员怎么耐受美国当年登月从未在月球度过1个月球日,也就是14个地球日,在月球上停留时间最长的是阿波罗17号,待了72小时,没机会体验月球的早晚温差。月球由于没有大气没有磁场,日光没有……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网