上面我们对于BMW520、BMW521都是只有一个工厂来进行生生产,扩展性就会比较差。

由于简单工厂模式中只有一个工厂类来对应这些产品,所以这可能会把我们的上帝累坏了,也累坏了我们这些程序员。

于是工厂方法模式作为救世主出现了。 工厂类定义成了接口,而每新增的车种类型,就增加该车种类型对应工厂类的实现,这样工厂的设计就可以扩展了,而不必去修改原来的代码。

简单来说为了解决简单工厂模式中工厂方法过多的if else问题,我们使用了工厂方法模式一个具体产品类由一个工厂类进行实现。

大话设计模式之爱你一万年:第三章 创建型模式:工厂模式:我想让你坐在宝马里笑:4.工厂模式之工厂方法模式相关推荐

  1. 大话设计模式之爱你一万年:第二章 创建型模式:单例模式:我的女朋友只有你一个:2.单例模式的实现-懒汉模式

    2.单例模式的实现-懒汉模式 视频学习地址  -- <大话设计模式之爱你一万年>:https://dwz.cn/wqO0MAy7 这一节我们先来看看一种实现模式,懒汉模式,这也是这么中实现 ...

  2. 大话设计模式之爱你一万年:第二章 创建型模式:单例模式:我的女朋友只有你一个:1.单例模式的基本概念

    1.单例模式的基本概念 我的女朋友总是你喜欢问:我在你心中是不是唯一的存在? 我:在我心里你就是独立无二的,谁都不能替代. 女朋友:那你证明一下. 我:Talk is cheap

  3. 大话设计模式之爱你一万年:第三章 创建型模式:工厂模式:我想让你坐在宝马里笑:2.工厂模式之无工厂时代

    在上一节中我们了解到了工厂模式中设计到了设计模式,在接下里的章节,我们会根据提出的问题一步步的优化我们的代码,最终把工厂模式学精学透. 一.工厂模式之无工厂时代 我有一个愿望就是让我的女朋友能够坐在宝 ...

  4. 大话设计模式之爱你一万年:第一章 设计模式基本概念:3.设计模式的六大原则

    在设计<设计模式之爱你一万年>的时候,为了让我的23种设计模式有一个最基本的底层支撑,我总结出来了六大原则,希望我的23种设计模式能够尽量符合六大原则,以此来达到更可能的通用性. 这一节来 ...

  5. 大话设计模式之爱你一万年:第三章 创建型模式:工厂模式:我想让你坐在宝马里笑:8.工厂模式总结

    这一节我们轻松一下,我们对于前面的简单工厂.工厂方法.抽象工厂做个总结. 一.工厂模式 1.1 定义 简单工厂(Simple Factory):由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类 ...

  6. 大话设计模式之爱你一万年:第三章 创建型模式:工厂模式:我想让你坐在宝马里笑:3.工厂模式之简单工厂模式

    在没有工厂的时代,客户真的什么都要操心,随着社会的进步,终于引来了工业革命. 一.引言 在没有工厂的时代,客户需要知道怎么去创建一款车,客户和车的生产就紧密耦合在一起了. 为了降低耦合,就出现了工厂类 ...

  7. 大话设计模式之爱你一万年:第三章 创建型模式:工厂模式:我想让你坐在宝马里笑:7.工厂模式实战之不同的支付渠道

    在实际项目中,我们会引入支付宝支付和微信支付,如果是按照常规的设计我们会这么设计: 设计两个支付类AliPay和WeixinPay,然后在调用的时候,实例化相应的类来进行发起支付,这种方式对于调用者而 ...

  8. 大话设计模式之爱你一万年:第九章 结构型模式:桥接模式:结婚发消息不是一件简单的事情:1.无桥接模式之消息发送

    说在前面的话:桥接模式(Bridge)会比较绕,所以我们打算换一种讲解方式,从一个例子从而引出桥接模式. 设计模式学到最后,看起来既像这个,又像那个,不要在意这心,设计模式的核心是提升代码的扩展性,如 ...

  9. 大话设计模式之爱你一万年:系列文章 - 导读

    大话设计模式之爱你一万年课程总介绍 课程介绍 六大设计模式原则,23种经典设计模式,实战 实战 再实战,手写代码为你一一解析.结合多年项目经验,为你带来设计模式的最佳指导. 课程目标 通过学习能掌握2 ...

  10. 单例模式的实现-懒汉模式【大话设计模式之爱你一万年:单例模式:我的女朋友只有你一个】

    2.单例模式的实现-懒汉模式 视频学习地址  -- <大话设计模式之爱你一万年>:https://dwz.cn/wqO0MAy7 这一节我们先来看看一种实现模式,懒汉模式,这也是这么中实现 ...

最新文章

  1. 从html中提取手机号码,C#从字符串中提取电话号码、手机号码
  2. Shell - 通过hook文件后门实现应用的自动启停
  3. 怎么一步步编写简单的PHP的Framework(二十一)
  4. SAP Spartacus里的登录token处理
  5. Python数据结构与算法(四)--顺序表
  6. SpringBoot中使用Shiro和JWT做认证和鉴权
  7. Fastlane基础介绍
  8. vue导出excel文件下载
  9. NB-IOT-BC26模块TCP AT指令调试记录
  10. vivado 下载程序出错:ERROR: [Labtools 27-3165] End of startup status: LOW
  11. Alfresco文档管理系统 文档
  12. safari html5 自动全屏,javascript – 使用iOS Safari网络浏览器的全屏html5视频
  13. 220913_100620-华为全球校园AI算法赛事(推荐方向):广告-信息流跨域CTR预估
  14. 2020 年 9 月程序员工资统计,平均了~
  15. Android 7.0 APN 拨号上网流程分析
  16. 程序员面试阿里、腾讯、京东等大公司,这些套路你知道吗?
  17. TDA2XEVM从EMMC启动
  18. 一个数据录入/查询的应用程序在登录时错误信息解决过程
  19. 比较好的文档翻译软件-哪个翻译软件最精准
  20. Hive启动报错:java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

热门文章

  1. 1031 Hello World for U
  2. 通达信交易服务器修改,GitHub - sjj6love/TdxTradeServer: TongDaXin Tarde Server 通达信交易服务器...
  3. Golang学习日志 ━━ 调用系统默认浏览器打开指定链接(全平台)
  4. java 5分钟_java计算下一个整5分钟时间点
  5. VMware 8超级详细的安装说明
  6. 计算机系统崩溃重新装机,电脑系统崩溃有几种重装系统的方法,赶紧试试看
  7. 2018年最新电子科技大学TCP/IP协议原理(杨宁)CSF视频教程42讲
  8. 解决win10家庭版本系统无法远程连接问题
  9. CAT-6:六类/增强六类双绞线标准
  10. CSS实现多余文本隐藏