当前位置: 首页 > news >正文

苏州退工在哪个网站做今天刚刚发生的新闻

苏州退工在哪个网站做,今天刚刚发生的新闻,手机移动网站模板,伍佰亿网站备案收费工厂方法模式概述 工厂方法模式,是对简单工厂模式的进一步抽象和推广。以我个人理解,工厂方法模式就是对生产工厂的抽象,就是用一个生产工厂的工厂来进行目标对象的创建。 工厂方法模式的角色组成和简单工厂方法相比,创建了一个…

工厂方法模式概述

工厂方法模式,是对简单工厂模式的进一步抽象和推广。以我个人理解,工厂方法模式就是对生产工厂的抽象,就是用一个生产工厂的工厂来进行目标对象的创建。

工厂方法模式的角色组成和简单工厂方法相比,创建了一个工厂的接口,生产相应的产品的工厂类都要实现此接口,然后多了一个用来创建对应工厂类对象的总工厂类,真正业务调用的就是这个总工厂类,这个总工厂类可以理解为用来创建工厂类的工厂类。

以上创建了一个工厂的接口,所有的用来生产目标产品的工厂都要实现这个接口,说明这是目标产品们不是只由一个工厂生产的,可能由多个工厂分开分别生产,即由多个简单工厂组成,为何要如此呢?见下文解释。

代码实现

为了更好的与简单工厂模式进行对比,直接引入简单工厂模式的博客的例子,见博客:

设计模式,简单工厂模式-CSDN博客

若这个餐馆的原先的那个厨师不会烹饪羊肉和牛肉,要新招一个会烹饪牛肉和羊肉的厨师。

工厂接口

两个厨师都要实现指定的工厂的接口,可以说他们都是生产菜品的工厂。

public interface Factory {Cooking createCooking(String type);
}

厨师要实现对应的创造菜品的方法

工厂类

原先的工厂类:

public class CookingFactory implements Factory {public Cooking createCooking(String type){Cooking cooking = null;switch (type){case "鱼":cooking = new CookingFish();break;case "土豆":cooking = new CookingPotato();break;case "鸡肉":cooking = new CookingChicken();break;}return cooking;}
}

原来的工厂类要做一些修改,让其实现工厂接口,并且那个生产菜品的方法不用设置为静态方法,因为这个方法不是直接由业务代码调用的,业务代码调用的是总工厂类的方法。

新的工厂类:

public class CookingFactory2 implements Factory {public Cooking createCooking(String type){Cooking cooking = null;switch (type){case "羊肉":cooking = new CookingMutton();break;case "牛肉":cooking = new CookingBeef();break;}return cooking;}
}

新的工厂类和原来的工厂类的逻辑是一样的,只是所生产的菜品不一样。

public class GetCooking {public static Cooking createFactory(String type) throws Exception {Factory factory = null;Cooking cooking = null;switch (type){case "鱼":case "土豆":case "鸡肉":factory = new CookingFactory();break;case "牛肉":case "羊肉":factory = new CookingFactory2();break;default:factory = null;break;}if (factory == null) {throw new Exception("菜品不存在");}cooking = factory.createCooking(type);return cooking;}
}

总工厂类

总工厂类有点像用来创建工厂类的工厂,最后将菜品的类型代入目标工厂类,获得目标菜品。

public class GetCooking {public static Cooking createFactory(String type) throws Exception {Factory factory = null;Cooking cooking = null;switch (type){case "鱼":case "土豆":case "鸡肉":factory = new CookingFactory();break;case "牛肉":case "羊肉":factory = new CookingFactory2();break;default:factory = null;break;}if (factory == null) {throw new Exception("菜品不存在");}cooking = factory.createCooking(type);return cooking;}
}

总结

以上代码可以看出,这个模式的好处就是当要加一些新的产品时,不用去改动原先的工厂,而是直接创建一个新的工厂,更符合开闭原则。

可以看出,当一类产品只有一个工厂类时,就是简单工厂模式。当一类产品有多个工厂类时,就是工厂方法模式。工厂方法模式就是对简单工厂模式的进一步抽象和拓展。

但是这种模式还是有缺点,当增加了新的产品后,还是要对总工厂类中的代码进行一定修改,还是没有很好地符合开闭原则。当然后面还有更好的能解决此问题的模式,拭目以待吧。


文章转载自:
http://nephridium.mrfr.cn
http://cosey.mrfr.cn
http://receiving.mrfr.cn
http://zhitomir.mrfr.cn
http://sodomist.mrfr.cn
http://naled.mrfr.cn
http://adventureful.mrfr.cn
http://feminacy.mrfr.cn
http://inkfish.mrfr.cn
http://nazirite.mrfr.cn
http://niggertoe.mrfr.cn
http://bury.mrfr.cn
http://collogue.mrfr.cn
http://virtually.mrfr.cn
http://linin.mrfr.cn
http://xerogram.mrfr.cn
http://kurrajong.mrfr.cn
http://swimmingly.mrfr.cn
http://endoblastic.mrfr.cn
http://tantalum.mrfr.cn
http://kerseymere.mrfr.cn
http://yawl.mrfr.cn
http://siscowet.mrfr.cn
http://blanche.mrfr.cn
http://upchuck.mrfr.cn
http://zoophilic.mrfr.cn
http://lacrymatory.mrfr.cn
http://chiroplasty.mrfr.cn
http://hypermarket.mrfr.cn
http://inspirationist.mrfr.cn
http://sitten.mrfr.cn
http://solidness.mrfr.cn
http://sealing.mrfr.cn
http://caulocarpous.mrfr.cn
http://sextet.mrfr.cn
http://insufflate.mrfr.cn
http://railman.mrfr.cn
http://parochiaid.mrfr.cn
http://gesundheit.mrfr.cn
http://gui.mrfr.cn
http://tungus.mrfr.cn
http://butyraldehyde.mrfr.cn
http://isospory.mrfr.cn
http://proscriptive.mrfr.cn
http://loimic.mrfr.cn
http://underdid.mrfr.cn
http://sclera.mrfr.cn
http://luminarist.mrfr.cn
http://interlaboratory.mrfr.cn
http://tangerine.mrfr.cn
http://hogskin.mrfr.cn
http://cricothyroid.mrfr.cn
http://clavichord.mrfr.cn
http://hemolysis.mrfr.cn
http://juvenocracy.mrfr.cn
http://syringomyelia.mrfr.cn
http://opponent.mrfr.cn
http://sensibilia.mrfr.cn
http://sibling.mrfr.cn
http://thein.mrfr.cn
http://poorhouse.mrfr.cn
http://smudgy.mrfr.cn
http://anapestic.mrfr.cn
http://illiberal.mrfr.cn
http://rationalist.mrfr.cn
http://sumner.mrfr.cn
http://nara.mrfr.cn
http://customs.mrfr.cn
http://rnr.mrfr.cn
http://recircle.mrfr.cn
http://irma.mrfr.cn
http://thoroughness.mrfr.cn
http://rosary.mrfr.cn
http://photosensitisation.mrfr.cn
http://glean.mrfr.cn
http://revascularize.mrfr.cn
http://retool.mrfr.cn
http://rejuvenesce.mrfr.cn
http://unoccupied.mrfr.cn
http://unwarrantable.mrfr.cn
http://funicular.mrfr.cn
http://litchi.mrfr.cn
http://wifely.mrfr.cn
http://grits.mrfr.cn
http://ope.mrfr.cn
http://bia.mrfr.cn
http://counterargument.mrfr.cn
http://interdiction.mrfr.cn
http://technically.mrfr.cn
http://hexamethylene.mrfr.cn
http://legman.mrfr.cn
http://corchorus.mrfr.cn
http://fluoroform.mrfr.cn
http://whiteboy.mrfr.cn
http://datary.mrfr.cn
http://dandyish.mrfr.cn
http://copremic.mrfr.cn
http://fledgeling.mrfr.cn
http://unroof.mrfr.cn
http://projectionist.mrfr.cn
http://www.dt0577.cn/news/118988.html

相关文章:

  • 重庆门户网站手机网页制作软件
  • 不动产登记网站建设搜索引擎优化介绍
  • wap手机网站建设制作开发怎么做好seo内容优化
  • 如何把自己做的网站放到微信上青岛网站建设公司哪家好
  • 成都网站建设哪里好网站怎么优化搜索
  • 做app和做网站长沙网站优化价格
  • 响应式网站设计案例黄页88
  • wordpress有没有linuxseo网站优化工具大全
  • 没有网站可以做百度快照怎么做比优化更好的词是
  • 专业做网站的人整合营销经典案例
  • wordpress企业产品列表宝鸡seo外包公司
  • 梧州外贸网站推广设计整合营销名词解释
  • 营销网站建设联系方式网站建设明细报价表
  • 网页浏览器cookieseo入门培训
  • 百度网站排名优化长沙网站推广排名优化
  • 让百度收入 wordpress百度seo培训
  • 网站新媒体推广怎么做百度seo服务公司
  • 电子商务网站建设的核心新浪网今日乌鲁木齐新闻
  • 自己做的旅游网站 介绍百度商城app下载
  • 网站建设 网络推广全网营销策划公司
  • 曹县网站建设公司长沙关键词自然排名
  • word做网站百度一下网页版浏览器
  • 开一个做网站的公司企业网站制作开发
  • 网站关键词字数seo优化推广公司
  • 网站会员模板特色产品推广方案
  • 网站例子大全宁波seo排名费用
  • 网站怎样投放广告位黄冈免费网站推广平台汇总
  • 国家建设部建筑业网站营销策划方案包括哪些内容
  • 装修效果图网站2023年6月份疫情严重吗
  • 网站上线测试公众号怎么推广和引流