关于工厂模式的神话

lei*_*eiz 8 factory-pattern

这让我困扰了一段时间,如果这是一个神话,我没有任何线索.

似乎工厂模式可以减轻为类添加依赖项的痛苦.

例如,在一本书中,它有类似的东西

假设您有一个名为Order的类.最初它并不依赖于任何东西.因此,您不必费心使用工厂来创建Order对象,而您只是使用plain new来实例化对象.但是,您现在要求必须与客户关联创建订单.您需要更改百万个位置才能添加此额外参数.如果您只为Order类定义了一个工厂,那么您可以在没有同样痛苦的情况下满足新要求.

这与为构造函数添加额外参数有何不同?我的意思是你仍然需要为工厂提供一个额外的论据,而且还有百万个地方使用,对吗?

for*_*idt 5

如果仅在当时知道用户,则创建订单,您可以实现getCurrentUser()工厂调用的功能.
如果可能,工厂功能显然会胜出.如果没有,那就没有收获.

如果过去你不知道客户需要什么,你可能也不知道是否可以实现一个getCurrentUser()功能.工厂方法得到回报的可能性可能不是很好,但它们并不总是等于0.