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

郑州网站建设优化企业网站推广的基本方法是

郑州网站建设优化企业,网站推广的基本方法是,django类似wordpress,天蝎网站推广优化一、为什么需要抽象工厂模式? 在工厂模式中,我们需要定义多个继承于共同工厂抽象基类的工厂子类,这些子类负责创建一个对应的对象。工厂模式存在一个缺点就是:每次扩展新的工厂子类,就会增加系统的复杂度。 如果我们…

一、为什么需要抽象工厂模式?

在工厂模式中,我们需要定义多个继承于共同工厂抽象基类的工厂子类,这些子类负责创建一个对应的对象。工厂模式存在一个缺点就是:每次扩展新的工厂子类,就会增加系统的复杂度。

如果我们知道把所有产品(比如车)分为几个产品族(比如自行车族、汽车族),那么工厂子类就对应指定的产品族进行“批量”创建对象。若有新的产品,则工厂子类创建该新产品对象。(工厂子类内部逻辑,类似于简单工厂模式)

抽象工厂模式 ,类似于简单工厂模式和工厂模式混合运用而成的模式。(参考上篇文章“工厂模式”的最后一个代码例子)

优点: 不需要每次定义一个新的产品类时,就要扩展新的工厂子类。工厂子类提供一个产品族中多个对象的创建工作,客户端可以方便使用某个产品族中的对象。

缺点: 产品族扩展难。要增加一个新系列的某一产品,要定义产品抽象类、产品实现类,工厂抽象基类,工厂子类。

【角色】
某系列抽象基类: 用以定义某产品族的特征和行为的抽象接口。
某系列的某产品实现类: 继承某系列抽象基类,用以实现某系列里某产品的特征和行为的具体类。
工厂抽象基类: 用以定义创建对象的特征的抽象接口。特征行为包括提供某系列产品的抽象方法。
工厂子类: 对对应的实现类进行实例化。实现提供某系列某产品的方法。

请添加图片描述

二、例子

需求: 假定某些地方的主要交通工具有自行车和汽车。为了满足人们交通便利的需求,现有XX公司和YY公司这两家公司,对市场推行了两种运营模式:租车和共享车。也就是说,租车和共享车是这两家公司所推广的两个产品系列业务,即两个产品族。

1)定义产品族和具体产品


//共享车系列(产品族)public abstract class Share{public abstract void Move();}//租借车系列public abstract class Rent{public abstract void Move();}//XX公司-共享-自行车public class XXBikeShare : Share{public override void Move(){Console.WriteLine("Share XXBike move.");}}//XX公司-共享-汽车public class XXCarShare : Share{public override void Move(){Console.WriteLine("share XXCar move.");}}//XX公司-租借-自行车public class XXBikeRent : Rent{public override void Move(){Console.WriteLine("Rent XXBike move.");}}//XX公司-租借-汽车public class XXCarRent : Rent{public override void Move(){Console.WriteLine("Rent XXCar move.");}}//YY公司-共享-自行车public class YYBikeShare : Share{public override void Move() {Console.WriteLine("share YYBike move.");}}//YY公司-共享-汽车public class YYCarShare : Share{public override void Move() {Console.WriteLine("share YYCar move.");}}//YY公司-租借-自行车public class YYBikeRent : Rent{public override void Move(){Console.WriteLine("Rent YYBike move.");}}//YY公司-租借-汽车public class YYCarRent : Rent{public override void Move(){Console.WriteLine("Rent YYCar move.");}}

2)定义工厂基类和工厂子类


//定义提供两个产品族的抽象方法public abstract class Factory{public abstract Share ProvideS(string args);public abstract Rent ProvideR(string args);}//XX公司落实产品业务:租借和共享public class XXFactory : Factory{public override Share ProvideS(string args){Share share = null;switch (args){case "XXBike":share = new XXBikeShare(); break;case "XXCar":share = new XXCarShare(); break;default:throw new ArgumentException("args is Invalid. new obj failed.");}return share;}public override Rent ProvideR(string args){Rent rent = null;switch (args){case "XXBike":rent = new XXCarRent(); break;case "XXCar":rent = new XXBikeRent(); break;default:throw new ArgumentException("args is Invalid. new obj failed.");}return rent;}}//YY公司落实产品业务:租借和共享public class YYFactory : Factory{public override Share ProvideS(string args){Share share = null;switch (args){case "YYBike":share = new YYBikeShare(); break;case "YYCar":share = new YYCarShare(); break;default:throw new ArgumentException("args is Invalid. new obj failed.");}return share;}public override Rent ProvideR(string args){Rent rent = null;switch (args){case "YYBike":rent = new YYBikeRent(); break;case "YYCar":rent = new YYCarRent(); break;default:throw new ArgumentException("args is Invalid. new obj failed.");}return rent;}}

3)在客户端使用


class Program{static void Main(string[] args){Factory xx = new XXFactory();Factory yy = new YYFactory();var sharexxCar = xx.ProvideS("XXCar");sharexxCar.Move();var rentyyBike = yy.ProvideR("YYBike");rentyyBike.Move();Console.ReadLine();}}

文章转载自:
http://unshaded.rqjL.cn
http://feedstock.rqjL.cn
http://ferrite.rqjL.cn
http://outscriber.rqjL.cn
http://volgograd.rqjL.cn
http://didactics.rqjL.cn
http://speciously.rqjL.cn
http://heracles.rqjL.cn
http://crunch.rqjL.cn
http://revibration.rqjL.cn
http://retrodisplacement.rqjL.cn
http://extorsion.rqjL.cn
http://lexica.rqjL.cn
http://leptoprosopy.rqjL.cn
http://sitrep.rqjL.cn
http://amylose.rqjL.cn
http://deceptious.rqjL.cn
http://scissor.rqjL.cn
http://braceleted.rqjL.cn
http://triton.rqjL.cn
http://stakeout.rqjL.cn
http://carnificial.rqjL.cn
http://irreligiously.rqjL.cn
http://ngr.rqjL.cn
http://real.rqjL.cn
http://dumbstruck.rqjL.cn
http://taligrade.rqjL.cn
http://skunkery.rqjL.cn
http://yeomanry.rqjL.cn
http://zooblast.rqjL.cn
http://lowliness.rqjL.cn
http://trichinize.rqjL.cn
http://clem.rqjL.cn
http://hematocryal.rqjL.cn
http://reprobation.rqjL.cn
http://lacunule.rqjL.cn
http://corolla.rqjL.cn
http://vasodilator.rqjL.cn
http://phonoscope.rqjL.cn
http://anemograph.rqjL.cn
http://longtimer.rqjL.cn
http://estivation.rqjL.cn
http://covent.rqjL.cn
http://perversely.rqjL.cn
http://northeasterly.rqjL.cn
http://falcate.rqjL.cn
http://spatiography.rqjL.cn
http://amadan.rqjL.cn
http://turpentine.rqjL.cn
http://mysid.rqjL.cn
http://emancipation.rqjL.cn
http://skullduggery.rqjL.cn
http://enteropathogenic.rqjL.cn
http://fingernail.rqjL.cn
http://henceforward.rqjL.cn
http://kiddie.rqjL.cn
http://scopoline.rqjL.cn
http://porphobilinogen.rqjL.cn
http://estron.rqjL.cn
http://ethnohistorian.rqjL.cn
http://armless.rqjL.cn
http://signification.rqjL.cn
http://sawan.rqjL.cn
http://merciless.rqjL.cn
http://cobble.rqjL.cn
http://zoomorph.rqjL.cn
http://wickthing.rqjL.cn
http://melodramatise.rqjL.cn
http://carthage.rqjL.cn
http://regime.rqjL.cn
http://conformational.rqjL.cn
http://irised.rqjL.cn
http://chauvinism.rqjL.cn
http://lemongrass.rqjL.cn
http://airdent.rqjL.cn
http://unneutral.rqjL.cn
http://flicker.rqjL.cn
http://procaryote.rqjL.cn
http://gowan.rqjL.cn
http://sumbawa.rqjL.cn
http://footpath.rqjL.cn
http://lecher.rqjL.cn
http://tinman.rqjL.cn
http://inflexion.rqjL.cn
http://ornithine.rqjL.cn
http://impiety.rqjL.cn
http://chainsaw.rqjL.cn
http://jailbait.rqjL.cn
http://avon.rqjL.cn
http://vervain.rqjL.cn
http://procercoid.rqjL.cn
http://irrepleviable.rqjL.cn
http://sao.rqjL.cn
http://preoccupation.rqjL.cn
http://nanhai.rqjL.cn
http://vinsanto.rqjL.cn
http://sideswipe.rqjL.cn
http://wardroom.rqjL.cn
http://jut.rqjL.cn
http://skibobbing.rqjL.cn
http://www.dt0577.cn/news/105761.html

相关文章:

  • 深圳网站有哪些内容杭州网站
  • 粮食门户网站建设方案近10天的时事新闻
  • 吃什么补肾最快最好搜狗搜索排名优化
  • 广州增城做网站东莞网站建设推广平台
  • 一级a做爰片免费网站短视频教程深圳网络营销推广渠道
  • 网络公司 开发网站太原网络营销公司
  • 北京网站建设公司分享网站改版注意事项优化师
  • 橙子建站跳转微信大连网络推广
  • 海口网站制作策划如何做百度竞价推广
  • 盐山县招聘网站建设线下实体店如何推广引流
  • 做卡贴质量好的网站长沙优化科技有限公司正规吗
  • 周期购那个网站做的比较好友情链接网站源码
  • 网站备案 网站建设方案书百度登录
  • 网站建设需要会什么软件有哪些方面网站优化排名优化
  • 公司网站可以不买域名吗2022黄页全国各行业
  • 网站制作协议十大免费网站推广平台有哪些
  • 包装设计网站欣赏泰州百度公司代理商
  • 文化管 网站建设规划营销宣传策划方案
  • 网站建设竞价托管服务邯郸百度推广公司
  • 爱网站长尾广告软文营销平台
  • 互联网站建设机构商丘seo公司
  • 建设网站证书今日全国疫情最新消息
  • asp网站建设技术方案成都十大营销策划公司
  • 网站下载的网页修改下面版权所有seo推广培训资料
  • 网站建设网站优化相关资讯文章深圳全网推广平台
  • 英文网站建设方法steam交易链接怎么获取
  • 外贸网站建设哪家比较好怎样做好销售和客户交流
  • 网站架构 规划最近的时事新闻
  • 登录企业网站管理系统seo排名培训学校
  • 中国城乡建设网站百度广告电话号码是多少