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

ios开发入门seo网站优化专家

ios开发入门,seo网站优化专家,佛山网站设计联系方式,千锋教育前端培训一、为什么需要抽象工厂模式#xff1f; 在工厂模式中#xff0c;我们需要定义多个继承于共同工厂抽象基类的工厂子类#xff0c;这些子类负责创建一个对应的对象。工厂模式存在一个缺点就是#xff1a;每次扩展新的工厂子类#xff0c;就会增加系统的复杂度。 如果我们…一、为什么需要抽象工厂模式 在工厂模式中我们需要定义多个继承于共同工厂抽象基类的工厂子类这些子类负责创建一个对应的对象。工厂模式存在一个缺点就是每次扩展新的工厂子类就会增加系统的复杂度。 如果我们知道把所有产品比如车分为几个产品族比如自行车族、汽车族那么工厂子类就对应指定的产品族进行“批量”创建对象。若有新的产品则工厂子类创建该新产品对象。工厂子类内部逻辑类似于简单工厂模式 抽象工厂模式 类似于简单工厂模式和工厂模式混合运用而成的模式。参考上篇文章“工厂模式”的最后一个代码例子 优点 不需要每次定义一个新的产品类时就要扩展新的工厂子类。工厂子类提供一个产品族中多个对象的创建工作客户端可以方便使用某个产品族中的对象。 缺点 产品族扩展难。要增加一个新系列的某一产品要定义产品抽象类、产品实现类工厂抽象基类工厂子类。 【角色】 某系列抽象基类 用以定义某产品族的特征和行为的抽象接口。 某系列的某产品实现类 继承某系列抽象基类用以实现某系列里某产品的特征和行为的具体类。 工厂抽象基类 用以定义创建对象的特征的抽象接口。特征行为包括提供某系列产品的抽象方法。 工厂子类 对对应的实现类进行实例化。实现提供某系列某产品的方法。 二、例子 需求 假定某些地方的主要交通工具有自行车和汽车。为了满足人们交通便利的需求现有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://www.dnsts.com.cn/news/230199.html

相关文章:

  • 海南网站建设哪家好烟台网站建设策划方案
  • 中国储备粮管理集团有限公司seo单页面优化
  • 做网站的公司哪家购物网站管理系统
  • 用网站做数据库吗石家庄做网站比较好的公司
  • 微网站微商城蓝色大气企业网站模板
  • 微博分享的网站怎么做网站优化两大核心要素是什么
  • 秦皇岛网站制作专家简洁大气摄影网站
  • 泰州网站制作哪家好手机商城oppo
  • 太原整站优化域名是com好还是cn好
  • 军工企业专业网站建设方案注册网站会不会有风险
  • 十堰建设网站首页网站建设常用的编程语言
  • 赣州做网站公司关键词的选择网站提示
  • 南宁企业自助建站网页设计搜题软件
  • 做网站是干啥的网站索引量突然下降
  • 网站优化哪家好wordpress个人展示网站6
  • 电子商务网站设计说明书简单的网页设计作品html
  • 做网站怎样申请动态域名wordpress文字颜色
  • 济南企业网站如何推广网站网站推广常用方法
  • 做网站 设备济南国画网站建设
  • 宁波网站制作相信荣胜网络文化企业官方网站开发方案书
  • 怎样看一个网站是不是织梦做的广西五建公司官网
  • 南宁庆云网站建设招聘网58同城招聘
  • 福州微信网站制作商丘百度推广电话
  • 深圳市企业网站建设价格如今做那个网站致富
  • 网站建设经验分享做网站预算表
  • 群辉做网站服务器wordpress换域名后无缩约图
  • 网站建设咨询中心教师做课题可以参考什么网站
  • 主机开设成功 网站正在建设中WordPress用php7
  • 比较好的设计欣赏网站异地备案 网站
  • 免费网站后台管理系统天长网站开发