admin管理员组

文章数量:1438711

设计模式:工厂方法模式(Factory Method)(1)

相比于建造者模式,工厂方法模式是另一个极端:它是最简单的创建型模式。

工厂方法模式和依赖注入有点儿关系。它们很相似,但是在设计理念和实现方法上还是有点儿区别:

维度

工厂方法模式

依赖注入

控制方向

主动创建对象(Push模式)

被动接收对象(Pull模式)

耦合度

依赖具体工厂类

仅依赖抽象接口

生命周期

通常每次创建新实例

可控制单例/瞬态等生命周期

配置方式

通过继承实现

通过容器配置

适用场景

需要精细控制创建过程

需要解耦和测试

工厂方法模式主要包含以下组件:

  • 抽象创建者:用于声明工厂方法,在 VFP 里,可以理解为包含方法模板和具体方法的类模板;
  • 具体创建者:继承自抽象创建者,实现抽象创建者所声明的工厂方法,在 VFP 里,也就是说,需要实现类模板中的方法模板;
  • 产品接口:在 VFP 里,你可以认为是类模板;
  • 具体产品:实现产品接口的产品,在 VFP 里,可以认为是继承自类模板的具体类。

好吧,我承认上面让你看的云山雾绕的内容,有一大半是 AI 的回复。但是,为了更好的理解这种设计模式,对于我一个 VFP 开发者来说,我需要在 VFP 的语境下来对它进行理解。当我对其有了大概了解之后,在基于 .NET 平台的 X# 中,才知道如何实现这种设计模式。

这听起来有点儿绕......拿 VFP 开发者熟悉的例子来总结,就是,当你告诉甲方爸爸说“您这样的需求我们以前实现过,所以我们很有把握在您使用的产品里实现它”时你需要考虑使用的最简单设计模式就是工厂方法模式,这样才能保住已经为数不多的黑头发。

当然,如果你之前是过程化设计,那么,你还需要重构之前的代码,才会顺风顺水。

下一篇儿,我会使用一个高度简化的实际案例来演示这种设计模式。

未完待续......

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-21,如有侵权请联系 cloudcommunity@tencent 删除接口设计模式factory产品继承

本文标签: 设计模式工厂方法模式(Factory Method)(1)