城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

设计模式工厂模式

12月28日 顾昀汐投稿
  简介
  工厂模式是创建型模式的一种,也是里面需要注意的点最少的一种设计模式。通常来说,工厂模式有简单工厂、工厂方法和抽象工厂三种,其中前两种实现较为简单,后面一种比较复杂,这里先将简单工厂和工厂方法放一起,抽象工厂单独写一篇。简单工厂
  简单工厂适用于工厂类型确定的情况,在工厂中通过传入的类型来创建对应的对象。传统的写法如下(以创建各种水果为例):1。首先定义水果的接口和方法:publicinterfaceFruit{StringgetType();}
  2。定义实现类(这里定义了Circle和Square)publicclassAppleimplementsFruit{OverridepublicStringgetType(){}}publicclassPearimplementsFruit{OverridepublicStringgetType(){}}
  3。定义一个跟图形映射的静态常量(非必须,本人习惯,这样可以避免魔鬼字符串,并且方便代码重构)publicinterfaceType{StringAPPLEStringPEAR}
  4。定义图形工厂publicclassFruitFactory{publicstaticFruitcreateFruit(Stringtype){if(type。equals(Type。PEAR)){returnnewPear();}elseif(type。equals(Type。APPLE)){returnnewApple();}}}
  5。客户端调用publicclassTest{publicstaticvoidmain(String〔〕args){FruitfruitFruitFactory。createFruit(Type。APPLE);System。out。println(fruit。getType());appleFruitfruit1FruitFactory。createFruit(Type。PEAR);System。out。println(fruit1。getType());pear}}关于简单工厂
  简单工厂应该是设计模式中最简单的一种,能满足一部分需求。该工厂最大的一个问题是违反了开闭原则,比如我现在要增加另一种水果,则必须在FruitFactory类中去增加,会修改这个类,我们辛辛苦苦加班写的代码,肯定是不想被别人去修改的。工厂方法
  如果简单工厂能满足我们的需求,就没有必要上工厂方法了,因为工厂方法会创建多个工厂,无疑增加了我们的维护成本。对于工厂方法,我们还是以创建水果为例,假设我们的苹果和梨有两种,分别时南方的和北方的,此时我们需要南方水果工厂来创建南方的水果,北方的水果工厂来创建北方的水果。步骤如下:1。定义水果的接口:publicinterfaceFruit{StringreturnType();}
  2。定义南方和北方苹果和梨,实现Fruit接口publicclassNorthAppleimplementsFruit{OverridepublicStringreturnType(){}}publicclassNorthPearimplementsFruit{OverridepublicStringreturnType(){}}publicclassSouthAppleimplementsFruit{OverridepublicStringreturnType(){}}publicclassSouthPearimplementsFruit{OverridepublicStringreturnType(){}}
  3。定义生产水果的工厂接口publicinterfaceFruitFactory{FruitcreateFruit(Stringtype);}
  4。定义南方和北方的水果工厂,实现FruitFactorypublicclassNorthFruitFactoryimplementsFruitFactory{OverridepublicFruitcreateFruit(Stringtype){if(type。equals(Type。APPLE)){returnnewNorthApple();}elseif(type。equals(Type。PEAR)){returnnewNorthPear();}}}publicclassSouthFruitFactoryimplementsFruitFactory{OverridepublicFruitcreateFruit(Stringtype){if(type。equals(Type。APPLE)){returnnewSouthApple();}elseif(type。equals(Type。PEAR)){returnnewSouthPear();}}}
  5。客户端调用publicclassTest{publicstaticvoidmain(String〔〕args){FruitFactoryfruitFactorynewSouthFruitFactory();FruitfruitfruitFactory。createFruit(Type。APPLE);System。out。println(fruit。returnType());applefromsouthSystem。out。println();FruitFactoryfruitFactory1newNorthFruitFactory();Fruitfruit1fruitFactory1。createFruit(Type。PEAR);System。out。println(fruit1。returnType());pearfromnorth}}
投诉 评论 转载

各个单反品牌适合穷人的相机和镜头有哪些?玩摄影未必会穷三代,单反穷玩儿也是有穷玩儿的方法的。主流的相机三大品牌,佳能、尼康、索尼(当然还有宾得,但因宾得市场占有率一直较低,暂不归在主流器材品牌中),如果只按单反……知网涉嫌垄断被立案调查专家谈知识资源平台常态化监管5月13日,国家市场监督管理总局公布消息:根据前期核查,依法对知网涉嫌实施垄断行为立案调查。随后,知网发布公告称,坚决支持,全力配合,将以此次调查为契机,深刻自省,全面自查,彻……FF再陷人事变动擅长资本运作的核心高管离职法拉第未来(FF)再起波澜。北京时间4月12日,FF核心高管之一、资本部副总裁王佳伟(JerryWang)更新了个人LinkedIn页面,显示已从FF离职。经《证券日报》……润建股份(002929。SZ)拟向参股公司旗鱼科技增资不超2智通财经APP讯,润建股份(002929。SZ)发布公告,为进一步加速公司及参股公司旗鱼科技业务拓展,结合旗鱼科技融资需求,公司拟以自有资金不超过2040万元向旗鱼科技增资,取……科普网络从1G到5G的演进历程从20世纪80年代发展至今,移动通信技术由1G的大哥大2G王者诺基亚3GCDMA4GLTE5G万物互联,经历了五代的变迁,每一代移动通信技术的发展都带来了时代的变迁,我们的生活……今日资讯网易云回应推迟赴港上市台积电3nm制程获英特尔订单文锌财经责编组整理编辑大风腾讯起诉抖音侵权王者荣耀一审获赔60万,抖音:已上诉深圳市腾讯计算机系统有限公司与北京微播视界科技有限公司侵害著作权及不正当竞争纠纷……台灯选择除了护眼,这几个参数一样重要,TaoTronics台我是一名设计人员,熬夜加班是常有的事。晚上在家加班,为了不影响家人,我一般都是使用台灯工作。因为长时间对着电脑,还要处理图片,之前我也用过几款护眼台灯,不过有些台灯用些时就会出……设计模式工厂模式简介工厂模式是创建型模式的一种,也是里面需要注意的点最少的一种设计模式。通常来说,工厂模式有简单工厂、工厂方法和抽象工厂三种,其中前两种实现较为简单,后面一种比较复杂,这……中国工程院院士倪光南推动国产高端ERP软件发展增强科技创新自在当前信息技术领域,软件的作用越来越大,社会上普遍流传的软件定义世界,软件定义一切,这些说法虽然有些夸张,但在一定程度上反映了软件地位的重大提升。中国软件业的发展可以追溯……红魔6Pro评测游戏手机的春天终于来了曾经不被看好的游戏手机,如今却成了香饽饽!光2021年扎堆上市的游戏手机就有黑鲨4系列、ROG游戏手机5、红魔6系列、拯救者电竞手机2Pro、RedmiK40游戏版、一加9R、……业内首批丨小米11Ultra获中国信通院移动智能终端操作系统9月17日,中国信通院泰尔实验室举办移动智能终端操作系统个人信息保护研讨会暨首批移动智能终端操作系统个人信息保护能力五星证书颁发仪式,向首批通过测评的两家手机厂商颁发泰尔证书。……海信激光电视法澳市场销量1月同比增长400中证网讯(王珞)2022年开年海信激光电视再迎开门红,1月海信激光电视在法国、澳大利亚两大市场销量同比增幅均超过400。激光电视这张中国高端制造新名片正在全球获得越来越多……
纳尼?为了让你用val,Scala连if的语法都改了未来医生白皮书发布,数字医疗融合患者素养提升多元医疗场景成为不做未来互联网上的老年人5G将颠覆消费音乐的方式,真正做到用音乐连接一切8个免费实用,带你解锁新知识的软件,让你悄悄变强大小孩和大人圈子不同?马化腾终于解释了为什么小孩不玩微信空调是上个世纪伟大的发明,也有人说是人类最自私的发明,自己凉住友建立丙烯酸树脂化学回收中试工厂OKR,真的适合你的企业吗?推动OKR前,要先了解的3件事宋PLUS新能源混动车带来不一样的感受微信iOS版又更新了这几个实用新功能Python多线程教程
政府机关档案管理存在的问题与对策探析用卫生纸做漂亮的花神舟十四航天员成功出舱,古籍记载我国早已登月简直不可思议植物大战僵尸争霸邻里镇正式公布!10月18日发售今天就能玩餐饮业该如何抓住“新零售”这个风口?5个投资方向不可错过传统美德作文三篇发财树叶子发黄的原因发财树叶子发黄怎么办太子湾公园的作文300字蹦极可以戴护目镜吗用什么方法去卫生间异味奶奶的剪纸四年级作文难忘的春节初二作文范文

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁