知识卡片
创建抽象选择
内容
创建型模式都在隔离“创建什么”和“如何创建”,差别在变化轴:产品族用抽象工厂,构造过程用生成器,子类决策用工厂方法,运行期复制用原型,唯一实例用单件。发散:先定位变化轴,再选模式名。
参考来源
- 位置:第3章《创建型模式》3.6节「创建型模式的讨论」(源文件:_epub-src/OEBPS/Text/part0068.xhtml)
- 结论依据:原文明确说明用一个系统创建的那些对象的类对系统进行参数化有两种常用方法,并对比了Abstract Factory、Builder、Prototype三个模式的关键特征差异(分别产生多个类的对象、逐步创建复杂产品、通过拷贝原型创建产品),直接支持卡片对创建型模式都在隔离'创建什么'和'如何创建'、差别在于变化轴不同的论述。
- 原始内容:"定义一个对象负责明确产品对象的类,并将它作为该系统的参数。这是Abstract Factory(3.1)、Builder(3.2)和Prototype(3.4)模式的关键特征。所有这三个模式都涉及创建一个新的负责创建产品对象的'工厂对象'。Abstract Factory由这个工厂对象产生多个类的对象。Builder使用一个相对复杂的协议,由这个工厂对象逐步创建一个复杂产品。Prototype由该工厂对象通过拷贝原型对象来创建产品对象。"