更多内容请见: 《Python3案例和总结》 - 专栏介绍和目录
文章目录
- 一、抽象工厂模式概述
- 1.1 什么是抽象工厂模式?
- 1.2 为什么需要抽象工厂模式?
- 1.3. 一个生动的比喻:跨平台UI工具包
- 1.4 抽象工厂模式的UML结构图
- 1.5 优缺点分析
- 1.6 应用场景
- 1.7 与工厂方法模式的区别
- 二、 Python代码实现
- 2.1 步骤1:定义抽象产品
- 2.2 步骤2:定义具体产品
- 2.3 步骤3:定义抽象工厂和具体工厂
- 2.4 步骤4:客户端代码
- 2.5 运行结果
一、抽象工厂模式概述
1.1 什么是抽象工厂模式?
1. 官方定义
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
(提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。)
2. 核心思想解读,我们拆解这个定义:
- “一系列相关或相互依赖的对象”:这是关键。抽象工厂模式处理的不是单个对象,而是一个产品族。例如,一个“现代风格”的UI主题族,包含“现代风格的按钮”、“现代风格的窗口”、“现代风格的文本框”。这些对象在风格上是相关且一致的。另一个产品族可能是“古典风格”的UI主题族。
- “提供一个接口”:这个接口就是我们的抽象工厂。它声明了创建产品族中每个产品的方法(如
create_button(),create_window()),但它不关心具体怎么创建。 - “无需指定它们具体的类”:这是模式的精髓。客户端代码