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

网站建设顶部图片开封建设网站

网站建设顶部图片,开封建设网站,最近五天的新闻大事,高品质的佛山网站建设Abstract Factory#xff0c;把英文直接翻译过来的话就是“抽象工厂”#xff0c;既然是工厂#xff0c;那就肯定是生产产品的地方。不过#xff0c;它不是生产同一类的产品#xff0c;而是生产同一系列的产品。举个例子#xff0c;广州本田现在生产3种汽车#xff0c;O…Abstract Factory把英文直接翻译过来的话就是“抽象工厂”既然是工厂那就肯定是生产产品的地方。不过它不是生产同一类的产品而是生产同一系列的产品。举个例子广州本田现在生产3种汽车Odyssey、Accord、Fit而广本的工厂里面并不是拥有3条不同的生产线以生产不同的汽车。这就非常相似于我们正在讨论的抽象工厂模式广本在生产不同的汽车时需要在各个生产环节进行修改换机器自然是不合适的因为这3种汽车每天都要生产分时段而已。如果某一个环节的更换工作出了问题都会有大麻烦比如Fit的车顶肯定装不到Odyssey上。我们在软件设计的时候也是这样如果需要某一系列配套的类来进行工作当这个系列中有一个类用错了后果都是不好的。再回到广本的例子上当广本准备生产另外一种汽车时只需要拥有相应的配套模具还有其他的一些配件和一些数控设备的控制程序就可以了没有必要搞一大堆的生产线。 再来一个生活中的例子西服西裤皮鞋白衬衫领带头发梳得顺顺的出入高级会所或者重要场合的时候男人一般都这样穿休闲装运动鞋随意的发型生活中就这样穿舒服睡衣拖鞋鸡窝头早上就这样。每一种都是合适的造型如果你搞成如下这样的造型就不合适了西服西裤回力鞋超级大背包鸡窝头广州火车站很多同志都是这样打扮的。 抽象工厂模式是一种创建型的模式。上面的比喻说明了抽象工厂就是生产同一个系列产品的东西因为这一系列的产品是关联的如果混用就可能出问题所以就统一的在抽象工厂中进行创建。当要增加一个新的产品系列时就多写一个工厂子类并添加相应的产品子类就可以了。 我们来看一个类图。     图中我们可以看到客户需要得到某系列的产品的时候直接用相应的工厂子类来创建产品就可以了。比如当需要生产Fit时就用FitFactory等到换班之后要生产Odyssey了直接使用OdysseyFactory替换FitFactory就行了至于怎么替换就随便了GoF也给了我们一些建议我将在后面总结创建型模式的时候讲。 把上面的类图转换成代码应该是这个样子。 关于车门的类     public abstract class AbstractDoor    {    }    public class FitDoor : AbstractDoor    {    }    public class OdysseyDoor : AbstractDoor    {    } 关于底盘的类     public abstract class AbstractChassis    {    }    public class FitChassis : AbstractChassis    {    }    public class OdysseyChassis : AbstractChassis    {    } 关于工厂的类     public abstract class HondaFactory     {         public abstract AbstractDoor CreateDoor();         public abstract AbstractChassis CreateChassis();     }     public class FitFactory     {         public AbstractDoor CreateDoor()         {             return new FitDoor();         }         public AbstractChassis CreateChassis()         {             return new FitChassis();         }     }     public class OdysseyFactory     {         public AbstractDoor CreateDoor()         {             return new OdysseyDoor();         }         public AbstractChassis CreateChassis()         {             return new OdysseyChassis();         }     }  客户的调用     public class Client    {        private AbstractDoor _door;        private AbstractChassis _chassis;        private HondaFactory _factory;        public void GetACar(string seriesName)        {            this.PrepareFactory(seriesName);            this._door  this._factory.CreateDoor();            this._chassis  this._factory.CreateChassis();            // TODO: Make a car!        }        private void PrepareFactory(string seriesName)        {            switch(seriesName)            {                case Fit:                    this._factory  new FitFactory();                    break;                case Odyssey:                    this._factory  new OdysseyFactory();                    break;            }        }    }    抽象工厂的优点很明显了就是在需要用到一系列相关类的地方它可以使我们不出错的创建出一系列的类实例而我们在需要添加新的产品系列的时候完全不需要考虑其他系列的问题仅需要将相关的抽象类工厂已经产品具体化就可以了。缺点也在这个地方当工厂需要生产多一种产品不是系列的时候改动将波及所有类比如广本打算在每一辆汽车上装一个翅膀那就需要在工厂中添加一个冲压机以及各种车型的翅膀模具还要在焊接科里添加这么一道工序涂装科以及总装科里面也一样要进行相应的调整。     工厂子类不一定需要实现父类的所有方法但要使子类有用的话我们必须使它的所有方法宣布具体化。这里就引出几种做法1、工厂父类可以就是一个接口以确保其子类一定是具体的2、我们可以继承抽象的父类但不完全具体化这样可以继续细分工厂子类3、抽象的父类中含有具体的方法这些方法也可以不加virtual修饰符。最后的这种方法可能是比较灵活一点的。 抽象工厂主要是用在需要一系列相关联的类协同工作的地方而且这些系列的数量可能会变多每一个系列完成的工作都不一样但是调用接口却是一样的。另外抽象工厂不适合这样一种情况即每个系列内部的元素数量不能够确定也就是说当初设计的时候系列中有3个配件后面又涨成5个之后又涨到7个这样的话要改动的地方将多到让人受不了。 回到目录上一篇引子下一篇Builder 转载于:https://www.cnblogs.com/Reeezak/archive/2005/10/23/260493.html
http://wiki.neutronadmin.com/news/97407/

相关文章:

  • 新网站怎么做论坛推广郑州新闻发布
  • 做简单的网站全国文明网联盟网站建设
  • 现在做网站用什么程序修改文章缩略字数 WORDPRESS
  • 做教育app的网站有哪些内容江南大学做网站
  • 建设网站是什么意思深圳市大型公司
  • 免费建网站软件系统网站开发有哪些书籍
  • 深圳手机端网站建设专业公司企业营销策略有哪些
  • 网站没后台怎么修改类容四川建设厅官方网站九大员通知
  • 专业积分商城网站建设绍兴网站建设做网站
  • 长沙公司网站建立找网络公司建网站的流程
  • 南昌网站开发设计制作实践活动
  • 做塑料的网站高端制作网站设计
  • 一级a做爰片免费网站孕交视频教程活动策划案格式模板和范文
  • 怎么查看网站的域名php装修网站源码
  • 企业需求做网站在哪儿交易用asp做网站课程
  • 广告传媒公司网站wordpress增加登录账户
  • 网站建设的客户wordpress内存高
  • 做网站_接活抖音搜索seo软件
  • 资讯类网站开发文档网站标准规范建设
  • 做ppt的动图下载哪些网站建设网站需要哪些硬件设施
  • 网站栏目结构网页设计网站
  • 以前做弹幕现在的电影网站wdcp创建多个网站
  • 河北建设厅网站登陆怎么找附件四川住房城乡建设厅官网
  • 网站建设制作的规划方案电脑编程教学入门教程
  • 网站建设目录结构设计wordpress添加自定义导航栏
  • 哪些网站可以做团购宁波seo入门教程
  • 电子商城网站开发项目描述网站建设的收获体会
  • 怎么设计门户网站重庆网站营销seo电话
  • 做网站编程序百度开屏广告优缺点
  • 凡科网站投票排行榜是怎么做的网站建设平台排名