工厂模式

  1. 简单工厂不是一种设计模式,可以称之为编程习惯,将变化抽离,做到程序之间解耦

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

 

 

  1. 静态工厂:利用静态方法定义一个简单的工厂;特点:不需要使用创建对象的方法来实力化对象,这也导致不能通过继承来改变创建方法的行为。
  2. 抽象工厂:定义抽象的产品族创建者,让具体的产品族创建者去创建产品。

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

 

定义

工厂方法模式:定义一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实力化推迟到子类。

抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

示例

简单工厂:将创建pizza 的方法从pizza store中抽离,定义到factory中,这样,pizza的创建过程就和pizza store的订购流程解耦。

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

静态工厂:将pizza的创建,抽取到静态方法中

工厂方法:将pizza store定义为抽象,子类自定义实现pizza 的创建,让程序的扩展性更好,比简单工厂更容易扩展,适用更多的场景

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

抽象工厂:提供接口用于创建相关或依赖对象的家族,而不需要明确指定具体类

Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式 Head First设计模式读书笔记-第四章 Factory Pattern 工厂模式

第四章总结

依赖导致原则指导方针:

  1. 变量不可以持有具体类的引用(不使用new直接创建对象引用)
  2. 不要让类派生自具体类(派生自具体类则依赖具体类,应该派生自抽象类)
  3. 不要覆盖基类中已实现的方法
  4. 工厂方法和抽象工厂都负责创建对象,但工厂方法通过继承,抽象工厂通过组合,意味着工厂方法创建对象需要扩展一个类,并覆盖工厂方法。

OO基础

抽象、封装、多态、继承

OO原则

封装变化

多用组合、少用继承

针对接口编程、不针对实现编程

为交互对象之间的松耦合设计努力

对扩展开放,对修改关闭

依赖抽象,不依赖具体

OO模式

抽象工厂模式---提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。

工厂方法模式---定义一个创建对象的接口,由子类决定要实例化的类。工厂方法让类把实例化推迟到子类

相关文章: