文章目录
第三章 创建型模式
1. Abstract Factory (抽象工厂)
-
意图:提供一个接口以创建一系列相关或相互依赖的对象,而无需指定他们具体的类;
-
适用性:
- 一个系统要独立与他的产品的创建,组合和表示;
- 一个系统要有多个产品中的一个来配置;
- 要强调一系列相关的产品对象的设计以便进行联合使用;
- 提供一个产品类库,但只想显示它们的接口而不是实践;
-
优缺点:
- 分离了具体的类;
- 易于交换产品系列;
- 有利于产品的一致性;
- 难以支持新种类的产品;
-
相关模式:
- 抽象工厂类常用工厂方法实现,也可以用
Prototype
实现; - 一个具体的工厂通常是一个
Singleton
;
- 抽象工厂类常用工厂方法实现,也可以用
2. Builder(生成器) — 对象创建型模式
- 意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创造不同的表示;
- 适用性:
- 创建复杂对象的算发应该独立于该对象的组成部分以及他们的装配方式;
- 构造过程必须允许被构造的对象有不同的表示;
- 参与者:
Builder
:- 为创建一个Product对象的各个部件提供接口;
ConcreteBuilder
:- 实现Builder的接口一构造和装配该产品的各个部件;
- 定义并跟踪它所创建的表示;
- 提供一个检索产品的接口;
Director
:- 构造一个使用
Builder
接口的对象;
- 构造一个使用
Product
- 表示被构造的复杂对象;
- 包含定义组成部件的类,包括将这些部件装备配成最终产品的接口;
- 效果:
- 可以改变一个产品的内部表示;
- 将构造代码和表示代码分开,通过封装一个复杂对象的创建和表示方式提高了对象的模块性;
- 可以对构造过程进行更精细的控制;
3. Factory Method(工厂方法) — 对象创建型模式