# 工厂模式

> 定义一个创建对象的接口，但让子类决定实例化哪一个类。

- ID: m00531
- 分类: structure
- 领域: 逻辑学

## 定义

定义一个创建对象的接口，但让子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类。脚手架作用：封装变化。在思维模型中，意味着建立一个“中间层”来处理不确定性。不要直接依赖具体的人或事（硬编码），而是依赖一个“生成机制”。当环境变化时，只需修改工厂的逻辑，而无需推倒重来。

## 机制

定义创建对象的接口，将具体类的实例化推迟到子类或工厂方法；调用方只依赖抽象产品，不依赖具体实现，从而降低耦合、封装变化点。

## 练习

抽象出产品接口；为每类产品建具体工厂或工厂方法；调用方通过工厂获取对象；新增产品时只扩展工厂而非修改调用方。

## 脚手架用法

封装变化。在思维模型中，意味着建立一个“中间层”来处理不确定性。不要直接依赖具体的人或事（硬编码），而是依赖一个“生成机制”。当环境变化时，只需修改工厂的逻辑，而无需推倒重来。

[阅读网页](https://thinkingmodels.site/entries/detail/m00531)
