工厂设计模式

工厂设计模式定义

平时创建对象的时候是通过 new 类来直接创建对象,而工厂模式是通过使用一个共同的接口根据不同的条件来产生具体想要创建的对象。

工厂模式使用场景

  • 数据源的选择,比如一开始项目是选用的 oracle 数据库,现在想换成 Mysql 数据库,使用工厂设计模式,能够灵活更换。
  • 一个系统不应该依赖于具体类实例如何被创建,组合和表达的细节,这对于所有类型的工厂模式都是很重要的,用户无须关心对象的创建过程,将对象的创建和使用解耦。

工厂设计模式优缺点

优点

  • 降低了代码之间的耦合性,扩展性比较高,新增产品只需要新建扩展类,不会影响现有功能。
  • 屏蔽了对象的创建具体实现,调用者只需要关心接口。

缺点

  • 每增加一个产品,就会相应增加一个子工厂,加大了额外的开发量,增加的代码量,增加了系统的复杂度,增加了系统对具体类的依赖。

  • 工厂类集中了所有实例的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响。

工厂模式分类

分类 描述
简单工厂 简单工厂模式,严格意义上讲不算设计模式,而是一种编程习惯,根据传递的参数来判断返回一个具体的对象。
工厂方法 工厂方法模式用于定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体的子类工厂类当中。这个要求满足创建与使用相分离的特点。
抽象工厂 抽象工厂模式用于为访问类提供一个创建一组相关或互相依赖对象的接口,并且访问类无须指定所要产品的具体类就能够得到同族的不同等级的产品的模式结构。

工厂设计模式总结

设计模式中工厂设计模式让对象的创建充满的选择,不是单一的直接 new 对象,使创建对象更加灵活。工厂模式分为简单工厂,工厂方法和抽象工厂三种模式。