工厂模式核心是将对象创建交由工厂处理以降低耦合、提升可扩展性;包含简单工厂(参数驱动)、工厂方法(子类决定实例化)和抽象工厂(创建产品族),选择取决于变化维度与一致性需求。

工厂模式的核心是把对象的创建过程从使用方剥离,交由专门的“工厂”来处理,从而降低耦合、提升可扩展性。它不直接 new 实例,而是通过统一接口获取对象,让新增类型只需改工厂内部逻辑,不牵连业务代码。
简单工厂:一个函数或类封装创建逻辑
适合类型不多、变化不频繁的场景。用一个函数或静态方法,根据参数返回不同子类实例。
- 定义基类(如 Payment)声明通用方法(如 pay())
- 实现多个子类(Alipay、WechatPay、CardPay)
- 编写工厂函数(如 create_payment(method: str) -> Payment),内部用 if/elif 或字典映射返回对应实例
- 调用方只和工厂与基类交互,完全不知道具体子类名
工厂方法:让子类决定实例化哪个类
当不同产品族需要各自独立的创建流程时适用。抽象工厂类定义创建方法,由具体子工厂实现。
系统特点:功能简洁实用。目前互联网上最简洁的企业网站建设系统!原创程序代码。非网络一般下载后修改的代码。更安全。速度快!界面模版分离。原创的分离思路,完全不同于其他方式,不一样的简单感受!搜索引擎优化。做了基础的seo优化。对搜索引擎更友好系统功能关于我们:介绍企业介绍类信息,可自由添加多个介绍栏目!资讯中心:公司或行业资讯类内容展示。可自由添加多个资讯内容!产品展示:支持类别设置,可添加产品图片
- 定义抽象工厂类(PaymentFactory),声明抽象方法 create_payment()
- 为每种支付方式写具体工厂(AlipayFactory、WechatFactory),各自实现创建逻辑
- 客户端持有工厂引用,调用 factory.create_payment() 得到对象,无需关心构造细节
- 新增支付方式?只需加子工厂类 + 子产品类,不修改原有工厂或客户端
抽象工厂:创建“产品族”,而非单个产品
适用于系统需同时创建一组相关或依赖的对象(如不同操作系统的 UI 组件:Button、Checkbox)。
立即学习“Python免费学习笔记(深入)”;
- 定义抽象工厂(GUIFactory)和多组抽象产品(Button、Checkbox)
- 实现具体工厂(WinFactory、MacFactory),每个都提供整套产品实例
- 客户端通过工厂统一获取配套组件,确保风格/行为一致,避免混搭出错
- 扩展新平台?只加一组具体工厂 + 对应产品实现,零侵入现有代码
选哪种取决于变化维度:类型少用简单工厂;创建逻辑差异大、需解耦工厂与产品用工厂方法;涉及多产品协作且需保证一致性,上抽象工厂。关键是把 new 的位置收拢,让对象生成变得可配置、可替换、可测试。









