2019独角兽企业重金招聘Python工程师标准>>>

Head First Design Pattern 读书笔记(4) Factory Pattern 工厂模式

##Factory Pattern 类图 ##定义

  1. 工厂模式:工厂模式严格意义上不算是设计模式,而是一种编程习惯,将创建某一类“产品”的代码封装起来,达到松耦合的目的。
  2. 工厂方法模式:定义一个创建对象的接口,但是由子类自己决定创建逻辑。工厂方法让类把实例化延迟到子类。
  3. 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确制定具体类。

##几个OO的原测

  1. 依赖倒置原测(Dependency Inversion Principle):要依赖于抽象,而不是依赖于具体实现。--》类似与面向接口编程,不管是高层还是底层模块,都应该依赖于抽象。
    依赖倒置在编码中的具体实践:

    • 变量不可以持有具体的类引用 --》如使用工厂的方式代替new方式创建对象。
    • 不要让类派生自具体类。
    • 不要覆盖基类中已实现的方法。

##关于工厂模式

  1. 简单工厂与工厂方法的区别:简单工厂仅封装了产品创建代码,如果新增了产品,需要修改工厂类的代码;工厂方法将创建产品的逻辑延迟到子类中去实现,所以可以不修改原有代发动态地拓展新产品。
  2. 工厂方法与抽象工厂的区别:抽象工厂将产品划分为多个“产品家族”,每一个“族”的产品在一个具体的工厂类中生产;而工厂方法通过继承父类,重写创建逻辑产生特定产品,生产的产品没有类别等级的概念,全部属于统一类产品。
  3. 抽象工厂的具体工厂类创建产品的代码是很难拓展,如果要在“产品族”中增加新的产品,需要修改工厂类的创建代码。

转载于:https://my.oschina.net/u/1010578/blog/366222

Head First Design Pattern 读书笔记(4) 工厂模式相关推荐

  1. 设计模式读书笔记-----抽象工厂模式

    在工厂方法模式中,我们使用一个工厂创建一个产品,也就是说一个具体的工厂对应一个具体的产品.但是有时候我们需要一个工厂能够提供多个产品对象,而不是单一的对象,这个时候我们就需要使用抽象工厂模式. 在讲解 ...

  2. 《自己动手写操作系统》读书笔记——初识保护模式

    <自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...

  3. 设计模式之禅读书笔记—行为类模式

    设计模式之禅读书笔记-行为类模式 PDF下载地址 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 责任链模式 定义:使多 ...

  4. 【chromium】常用设计模式:委托模式(Delegate Pattern)、观察者模式、 工厂模式。

    文章目录 对象行为型模式 观察者模式(Observer Pattern) 类创建型模式 工厂模式(Factory Pattern) Delegate 和 client 委托模式(Delegate Pa ...

  5. 设计模式之笔记--抽象工厂模式(Abstract Factory)

    抽象工厂模式(Abstract Factory) 定义 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 类图 描述 多个抽象产品 ...

  6. 设计模式之笔记--简单工厂模式(Simple Factory)

    简单工厂模式(Simple Factory) 类图 描述 简单工厂: 一个抽象产品类,可以派生多个具体产品类: 一个具体工厂类: 工厂只能创建一个具体产品. 应用场景 汽车接口 public inte ...

  7. JAVA设计模式笔记(简单工厂模式)

    有一个水果加工工厂,我们的需求是实现加工水果的功能.常见的做法是创建一个水果抽象类,写一个抽象的加工方法,然后创建具体的水果类去继承抽象类,再去实现抽象方法,最后客户端再去新建对象实例. public ...

  8. 【Java学习笔记】工厂模式

    工厂模式 一.工厂模式的作用 二.简单工厂模式 三.工厂方法模式 四.抽象工厂模式 五.总结 一.工厂模式的作用 原本我们是用new来创建新对象,而现在我们用一个工厂类来代替创建新对象的工作 实现创建 ...

  9. 《设计模式》读书笔记——创建型模式

    设计模式 创建模式 定义: 创建型模式抽象了实例化过程.他们帮助一个系统独立于如何创建.组合和表示它的那些对象 一个类创建型模式使用继承改变被实例化的类,而一个对象创建模式是将实例化委托给另一个对象 ...

最新文章

  1. Ubuntu 安装 ffmpeg
  2. 赤兔四足机器人的作用_跑得快,打不死!清华大学开发“小强”机器人,壮汉狂踩也挡不住前进步伐...
  3. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)
  4. k8s edit命令使用示例
  5. 最新综述:推荐系统的Bias问题和Debias方法
  6. 剑指 Offer 11. 旋转数组的最小数字 LCOF
  7. Flask中路由系统以及蓝图的使用
  8. leetcode13
  9. hdu2243考研路茫茫——单词情结
  10. 编译原理初学者入门指南
  11. 数学与逻辑思维(一)
  12. AVR单片机教程——DAC
  13. 德乐SM2258XT固态硬盘DERLER T-1不认盘量产修复工具
  14. 新能源车如何走出“一票否决”的窠臼?
  15. 逻辑谬误_跟上的谬误
  16. 写论文的公式怎么写最便捷?
  17. Python学习_案例for循环嵌套
  18. 漏洞篇(SQL注入一)
  19. 火狐浏览器怎么录制屏幕_轻松获取Firefox中的屏幕截图
  20. mac os操作系统安装

热门文章

  1. AI Challenger全球AI挑战赛开幕,300万奖金池,还可能获李开复投资
  2. 亲历李飞飞的AI4ALL,是一种怎样的体验?
  3. 高盛的AI说,今年世界杯冠军是巴西
  4. 歪果仁眼中的中国理工科科研调查:让学术氛围更自由成最大呼声 | 报告
  5. 特斯拉Model 3产能跟不上,是因为用了太多机器人
  6. 科技部:推进人工智能和实体经济深度融合 壮大智能经济
  7. 解读netty3.9的数据处理流程(一)
  8. linux 环境安装及学习
  9. append导致TypeError: 'NoneType' object is not iterable
  10. 我为什么用GO语言来做区块链?