创建型-工厂模式

2020/05/16

是否能做到软件对象的生产和使用相分离?

工厂方法(FactoryMethod)模式的定义:

我们创建对象时不需要知道具体怎么实现的,只需要共同的接口来指向新创建的对象。

定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。

我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 GoF 的 23 种经典设计模式,它的缺点是增加新产品时会违背“开闭原则”。

抽象工厂模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。

image-20200411163156928

工厂方法的意义:

将实例化的代码抽取出来,放到一个类中统一管理,达到和主项目依赖关系的解耦。从而提高扩展和维护性。

JDK 源码分析

image-20200411165204546

使用场景

首先当然是在你需要new一个类的对象的时候,此时各种状况出现啦:

  1. 你不想直接new这个类的对象,怕以后这个类改变的时候你需要回来改代码,而此时依赖这个类的地方已经到处都是了。
  2. 这个类的对象构建过程非常复杂,你不愿意将这么复杂的构建过程一遍又一遍的写在需要用到此对象的地方。
  3. 这个类的对象在构建过程中依赖了很多其他的类,而你无法在调用的地方提供。

Post Directory