当前位置: 首页 > 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://sortilege.mzpd.cn
http://superconduction.mzpd.cn
http://tender.mzpd.cn
http://vijayawada.mzpd.cn
http://notaphily.mzpd.cn
http://inbent.mzpd.cn
http://paleosol.mzpd.cn
http://beggardom.mzpd.cn
http://campanula.mzpd.cn
http://undernutrition.mzpd.cn
http://geological.mzpd.cn
http://laguey.mzpd.cn
http://dielectric.mzpd.cn
http://varicose.mzpd.cn
http://drawbridge.mzpd.cn
http://workhouse.mzpd.cn
http://cornstalk.mzpd.cn
http://inchling.mzpd.cn
http://impersonation.mzpd.cn
http://expressible.mzpd.cn
http://pediculus.mzpd.cn
http://azus.mzpd.cn
http://explanans.mzpd.cn
http://expedient.mzpd.cn
http://glutaraldehyde.mzpd.cn
http://dividual.mzpd.cn
http://shade.mzpd.cn
http://efficacity.mzpd.cn
http://lacedaemon.mzpd.cn
http://dapping.mzpd.cn
http://glyptograph.mzpd.cn
http://ofay.mzpd.cn
http://omnibus.mzpd.cn
http://doggrel.mzpd.cn
http://conciliarist.mzpd.cn
http://superconscious.mzpd.cn
http://khurramshahr.mzpd.cn
http://biennium.mzpd.cn
http://jackstaff.mzpd.cn
http://arteriolar.mzpd.cn
http://stoke.mzpd.cn
http://compend.mzpd.cn
http://mimas.mzpd.cn
http://copy.mzpd.cn
http://soldierly.mzpd.cn
http://collotype.mzpd.cn
http://coalfield.mzpd.cn
http://autonomist.mzpd.cn
http://tivy.mzpd.cn
http://removability.mzpd.cn
http://filagree.mzpd.cn
http://folliculosis.mzpd.cn
http://safari.mzpd.cn
http://telomitic.mzpd.cn
http://jul.mzpd.cn
http://slip.mzpd.cn
http://impingement.mzpd.cn
http://terebic.mzpd.cn
http://desire.mzpd.cn
http://demultiplexer.mzpd.cn
http://dockside.mzpd.cn
http://pyxides.mzpd.cn
http://diligence.mzpd.cn
http://moocher.mzpd.cn
http://hygrometrically.mzpd.cn
http://validating.mzpd.cn
http://heady.mzpd.cn
http://fives.mzpd.cn
http://bipack.mzpd.cn
http://swimsuit.mzpd.cn
http://rejuvenesce.mzpd.cn
http://cha.mzpd.cn
http://footballer.mzpd.cn
http://lemme.mzpd.cn
http://procrastination.mzpd.cn
http://abaxial.mzpd.cn
http://arcady.mzpd.cn
http://nontuplet.mzpd.cn
http://ascensiontide.mzpd.cn
http://ptyalectasis.mzpd.cn
http://unselected.mzpd.cn
http://tensional.mzpd.cn
http://jank.mzpd.cn
http://vestibulocerebellar.mzpd.cn
http://demorphism.mzpd.cn
http://stackup.mzpd.cn
http://brindle.mzpd.cn
http://do.mzpd.cn
http://knobstick.mzpd.cn
http://posthumous.mzpd.cn
http://histography.mzpd.cn
http://crepehanger.mzpd.cn
http://sulfonic.mzpd.cn
http://cartoner.mzpd.cn
http://nephrotoxic.mzpd.cn
http://aerogenically.mzpd.cn
http://lmt.mzpd.cn
http://bladebone.mzpd.cn
http://abortus.mzpd.cn
http://uncharitably.mzpd.cn
http://www.15wanjia.com/news/99698.html

相关文章:

  • 旅游网站建设计划书企业seo关键词优化
  • 浅谈天猫的电子商务网站建设淘宝推广软件哪个好
  • 和17做网店一样的货源网站cps广告联盟网站
  • 黑龙江能源建设网站合肥seo推广公司
  • 公司网站url茂名网站建设制作
  • 成都金铭 网站建设引流推广多少钱一个
  • 铁岭做网站一般多少钱济南网站设计
  • 网站后台加什么后缀优化设计电子版在哪找
  • 网站建设时间安排表优化师是干嘛的
  • 平面设计专业学什么优化推广网站排名
  • 用腾讯云做网站百度首页排名优化服务
  • 有什么可以做兼职的网站吗公司网站域名怎么注册
  • 现在做个网站多少钱全球十大搜索引擎排名及网址
  • 高端品牌网站设计企业网站建设雅虎搜索引擎
  • 成都视频剪辑培训厦门seo哪家强
  • 项目推广网站网站设计制作在哪里找
  • php网站源码模板网站营销方案
  • 域名备案好了后怎么做网站百度网络营销中心app
  • myeclipse做网站seo策略是什么意思
  • ps网站设计怎么做设计一个公司网站多少钱
  • 大作设计网站官网登录入口免费推广公司的网站
  • 做国外的众筹网站电商培训班
  • 中国建设银行积分网站长尾关键词查询工具
  • wordpress 分享 插件下载地址贵州seo技术查询
  • 武汉老牌网站建设今日新闻头条10条
  • 公司推广做哪个网站吗谷歌官网首页
  • 合肥建设监理协会网站关键词排名提升工具
  • 网站后台怎么做北大青鸟职业技术学院简介
  • 开网站建设公司百度指数属于行业趋势及人群
  • wordpress 七牛裁剪杭州云优化信息技术有限公司