Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/抽象工厂模式.md
2023-09-10 10:50:53 +08:00

799 B

!Pasted image 20230705223350.png

Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。)

!Pasted image 20230705223627.png

有 N 个产品族,在抽象工厂类中就应该有 N 个创建方法

有 M 个产品等级就应该有 M 个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务。

优点

  • 封装性
  • 产品族内的约束为非公开状态

缺点

产品族扩展非常困难,需要修改抽象类及实现类违反开闭原则, 横向扩展容易,纵向扩展困难

使用场景

一个对象族(一组没有任何关系的对象)都有相同的约束