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

苏州高新区建设局网站h5制作网站

苏州高新区建设局网站,h5制作网站,论坛网站平台建设方案,交友网站免费建设为什么需要工厂模式,其作用什么?如何实现,代码演示解析优缺点。Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么? 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的…

  1. 为什么需要工厂模式,其作用什么?
  2. 如何实现,代码演示+解析优缺点。

Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么?

  1. 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的方法,不需要管B的实例化或者不感知B如何实例化,创建的工作交给工厂类。
  2. 代码复用。如果创建对象B的过程需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。把创建对象B的代码放到工厂里统一管理。既减少重复代码,也方便以后对B的创建过程的修改和维护。
  3. 符合迪米特法则和单一职责,使用者只需要知道如何使用产品以及负责如何用产品,无须感知创建的逻辑。

Q2: 有哪些工厂模式?如何实现?

一般有三种。简单工厂模式,工厂方法模式,抽象工厂模式,后两者时GOF23种设计模式中的。

简单工厂模式

定义:创建任务简单,一个工厂干所有的活。

代码演示:

类图:

优点:逻辑简单。封装了创建逻辑,将创建和使用解耦。

缺点:维护成本高,需要不断修改工厂内部实现,不符合开闭原则。

工厂方法模式

定义:简单工厂升级版。对工厂开始动刀子。定义工厂接口,制定规则,但具体实现下沉到实现体去控制。

代码演示:

类图变动:

具体代码:

优点:相比简单工厂,利于扩展和维护。比如当新增一种车时,只需要对应创建具体产品类和负责生产新品种车的具体工厂即可。符合“开闭原则”,便于扩展。

缺点:具有一定的局限性,只能生产出一种产品(由接口内部方法决定),比如我要生成BMW牌子的某级别车就不直接支持。

抽象工厂模式

定义:主要用于解决“一类产品”的创建问题,比如各种牌子的B级车,C级车。可以从自底向上抽象归纳的角度考虑。底层有多种抽象后可以归为一类的东西,这里就是B级车,C级车。也可以是篮球,足球,然后工厂需要负责创建不同牌子的篮球,足球。也可以理解为抽象工厂的工厂接口比工厂方法的更多,功能更强大。

区别:

工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

代码演示:

类图:

优点:

  1. 抽象工厂模式隔离了具体类的生成,将创建和使用解耦。利于扩展和维护。所有的具体工厂都实现了抽象工厂中定义的那些公共接口只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。
  2. 当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。
  1. 增加新的产品族很方便,无须修改已有系统,符合“开闭原则”。

缺点:增加新的产品等级结构麻烦,需要对原有系统进行较大的修改,甚至需要修改抽象层代码,这显然会带来较大的不便,违背了“开闭原则”。

------------------------------------------    最后     -------------------------------------------------------------------------

源码:公 众 号 搜“程序员一棵树” ,回复 “设计模式” 即可获取源码链接。

 


更多 视频 内容请
     1. B 站         搜索关注 “程序员一棵树”
     2. 抖 音        搜索关注 “程序员一棵树”
     3. 公 众 号   搜索关注 “程序员一棵树”
————————————————
版权声明:本文为CSDN博主「ying105525」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010867670/article/details/128942659

http://www.wangmingla.cn/news/76406.html

相关文章:

  • 网站关键词过多免费永久注册顶级域名网站
  • 怎么仿一个复杂的网站常见的营销策略有哪些
  • 相亲网站绑定微信怎么做seo品牌
  • wordpress 问答 主题 knowhowseo排名优化表格工具
  • 网站大幅广告百度推广关键词
  • 怎么开网站做站长seo快速排名首页
  • 外贸购物网站建站厦门seo关键词优化
  • 行业网站排行榜全球网站排名
  • 网站设计是不是会要用代码做优化大师apk
  • 网站开发用php还是java好百度如何免费推广
  • 企业网站建设流程及费用百度关键词查询工具
  • 做简单网站代码成都广告公司
  • 商城网站建设策划游戏优化
  • 网站跟网页的区别是什么意思软文代写发布
  • 网站在线开发关键词挖掘网站
  • 设计wordpress主题下载地址济南网站自然优化
  • 用ps如何做短视频网站seo搜索引擎优化主要做什么
  • 百度网站快速收录百度经验手机版
  • 做网站开发数据库怎么写杭州百度首页优化
  • 外贸营销网站给大家科普一下b站推广网站
  • 东城响应式网站建设广东百度推广的代理商
  • 怎么用.net做网站百度权重工具
  • 有网站开发经验怎么写简历杭州龙席网络seo
  • 网页用什么软件做seo的主要工作内容
  • 来一个网站谢谢了seo网站推广实例
  • 直播网站开发好做么杭州seo关键字优化
  • 做网站的广告语成人短期电脑培训班学费
  • 美国网站建设深圳网站关键词优化推广
  • 武汉专业网站建设推广外汇交易平台
  • 省厅网站建设招标安卓优化大师最新版