简单工厂模式

定义

由一个工厂对象决定创建出哪一种产品类的实例

类型

创建型,但不属于GOF23种设计模式

适用场景

工厂类负责创建的对象比较少
客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心

优缺点

  • 优点
    • 只需要传入一个正确的参数,就可以获取你所需要的对象而无须知道其创建细节
  • 缺点
    • 工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则

分割线


工厂模式

定义

定义ー个创建对象的接口
但让实现这个接口的类来决定实例化哪个类
工厂方法让类的实例化推迟到子类中进行

类型

创建型

适用场景

创建对象需要大量重复的代码
客户端(应用层)不依赖于产品实例如何被创建、实现等细节
一个类通过其子类来指定创建哪个对象

优缺点

优点

用户只需要关心所需产品的对应的工厂,无需关心创建细节
加入新产品符合开闭原则,提高可扩展性

缺点

类的个数容易过多,增加复杂度
增加了系统的抽象性和理解难度

代码结构示例


image.png