工厂方法和抽象工厂方法的区别:

个人理解为抽象工厂方法是多个工厂方法,具体如下:

工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。

区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。(借鉴)

如大话设计模式中抽象工厂方法一节中的UML类图如下:

工厂模式:设计模式——抽象工厂方法
抽象工厂模式:设计模式——抽象工厂方法
对比两UML图易知:抽象工厂方法中有多个抽象产品类,如图中的IDepartment和IUser,且每个工厂可以创建多个具体产品实例,如图二中创建了用户和部门两个实例。

相关文章:

  • 2021-08-09
  • 2021-07-24
  • 2021-06-03
  • 2021-12-24
  • 2021-07-29
  • 2021-11-06
  • 2022-02-22
猜你喜欢
  • 2021-08-12
  • 2022-01-19
  • 2021-12-19
  • 2022-01-20
  • 2021-07-03
  • 2021-10-21
相关资源
相似解决方案