02-简单工厂模式(静态工厂模式)/03-工厂(方法)模式/04-抽象工厂模式/

02-简单工厂模式(静态工厂模式)

  • 属于类的创建型模式
  • 可以根据参数的不同返回不同的实例
  • 专门定义了一个类来负责创建其他类的实例,被创建的实例通常具有相同的父类。
    类图:


    简单工厂模式/静态工厂模式类图

优点:

实现了类的创建和使用的分离

缺点:

不够灵活,一旦有了新的“产品”,就需要修改工厂类的代码。

03-工厂(方法)模式

02-简单工厂模式(静态工厂模式)下,工厂类处于产品实例化的中心位置。
1、需要知道产品类的具体实现细节
2、并决定何时实例化哪一个产品类
导致了只要有新产品的出现就必须修改这个工厂类。

开闭原则

程序应对于扩展时开放的,对于修改是封闭的。

工厂(方法)模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使得一个类的实例化延迟到其子类

工厂(方法)模式类图

04-抽象工厂模式

03-工厂(方法)模式下,新增一个产品必须新增一个与其对应的工厂类
1、每一个具体工厂都负责身长一种对应的具体产品。
2、工厂模式要求这些产品都属于同一大类(即有相同的父类或实现同一接口)

工厂模式下只能生产一个大类的产品。

但新增一个大类的产品时,又不得不修改抽象工厂的代码。
违反“开闭原则”,即扩展性和可用性只能二选一。

你可能感兴趣的:(02-简单工厂模式(静态工厂模式)/03-工厂(方法)模式/04-抽象工厂模式/)