跳到主要内容

设计模式 -- 抽象工厂模式

抽象工厂模式是一种创建型设计模式,它提供了一种方式来封装一组具有共同主题的独立工厂,而不需要指定它们的具体类

定义

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类

结构

  1. 抽象工厂(AbstractFactory): 声明创建抽象产品对象的接口
  2. 具体工厂(ConcreteFactory): 实现创建具体产品对象的操作
  3. 抽象产品(AbstractProduct): 为一类产品对象声明接口
  4. 具体产品(ConcreteProduct): 定义将被具体工厂创建的产品对象

模式优点

  • 隔离具体类:客户端只与抽象接口交互,不依赖具体实现
  • 易于交换产品系列:只需改变具体工厂即可切换整个产品系列
  • 保证产品兼容性:工厂创建的产品都是设计为一起工作的
  • 符合开闭原则:新增产品系列时无需修改已有代码

模式缺点

  • 扩展新产品种类困难:需要修改抽象工厂接口及所有具体工厂
  • 增加了系统复杂性:引入了许多额外的类和接口