安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

设计模式工厂模式

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。激光电视这张中国高端制造新名片正在全球获得越来越多……
取件码,菜鸟最深的秘密联想有哪些技术是世界领先的?降或者不降?这四款冷门旗舰机神仙打架,谁来给它们买账?软银集团媒体对孙正义发言有误解,软银会继续投资中国市场均配置120Hz高刷屏,两款三星中端价位手机降价,最低189北京晚报评论线上卖菜,质量别菜打败国外企业获得世界大奖!国产品牌口碑享誉海外JavaScript字符串操作方法大全,包含ES6方法在社保卡激活后,原来医保卡上的钱会转入到社保卡里吗?美国再次出手!英特尔在华扩产彻底凉凉了对标小米12Pro!小米首款骁龙8直屏手机曝光欧科云链行业观察NFT二次爆发区块链世界时刻有新事物在颠覆既

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利