设计模式:工厂方法模式(Factory Method)(1)
相比于建造者模式,工厂方法模式是另一个极端:它是最简单的创建型模式。
工厂方法模式和依赖注入有点儿关系。它们很相似,但是在设计理念和实现方法上还是有点儿区别:
维度 | 工厂方法模式 | 依赖注入 |
---|---|---|
控制方向 | 主动创建对象(Push模式) | 被动接收对象(Pull模式) |
耦合度 | 依赖具体工厂类 | 仅依赖抽象接口 |
生命周期 | 通常每次创建新实例 | 可控制单例/瞬态等生命周期 |
配置方式 | 通过继承实现 | 通过容器配置 |
适用场景 | 需要精细控制创建过程 | 需要解耦和测试 |
工厂方法模式主要包含以下组件:
- 抽象创建者:用于声明工厂方法,在 VFP 里,可以理解为包含方法模板和具体方法的类模板;
- 具体创建者:继承自抽象创建者,实现抽象创建者所声明的工厂方法,在 VFP 里,也就是说,需要实现类模板中的方法模板;
- 产品接口:在 VFP 里,你可以认为是类模板;
- 具体产品:实现产品接口的产品,在 VFP 里,可以认为是继承自类模板的具体类。
好吧,我承认上面让你看的云山雾绕的内容,有一大半是 AI 的回复。但是,为了更好的理解这种设计模式,对于我一个 VFP 开发者来说,我需要在 VFP 的语境下来对它进行理解。当我对其有了大概了解之后,在基于 .NET 平台的 X# 中,才知道如何实现这种设计模式。
这听起来有点儿绕......拿 VFP 开发者熟悉的例子来总结,就是,当你告诉甲方爸爸说“您这样的需求我们以前实现过,所以我们很有把握在您使用的产品里实现它”时你需要考虑使用的最简单设计模式就是工厂方法模式,这样才能保住已经为数不多的黑头发。
当然,如果你之前是过程化设计,那么,你还需要重构之前的代码,才会顺风顺水。
下一篇儿,我会使用一个高度简化的实际案例来演示这种设计模式。
未完待续......
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-21,如有侵权请联系 cloudcommunity@tencent 删除接口设计模式factory产品继承
发布评论