工厂建造一个物体,是浪费还是不必要?

时间:2013-05-25 10:07:57

标签: php oop

我曾经有过

CustomerCollection extends AbstractCollection
OrderCollection extends AbstractCollection
etc...

但我已经意识到我并不真正需要它们,只需要一个Collection

我有CollectionFactory现在只构建一个对象Collection

我觉得这是浪费和不必要但我喜欢使用工厂,因为它使“新”操作员不在我的代码中,除了在我的工厂这是好的并且还在我的工厂中保持对象创建的工作很好。

您认为工厂只创建一个对象是好还是坏?

3 个答案:

答案 0 :(得分:4)

我有/有同样的困境,但事实上在很多情况下非常有用。

我使用映射器模式,它依赖于水化器和实体(对我来说)。我用了默认的保湿剂。但我改变了设计,需要另外一个保湿剂。

我可以在工厂里切换加水器,一切都很好(只需要对加水器进行编码,但这不在范围内:P)

因此,我不需要更改所有代码行,而只需要更改一行代码然后再次运行,并且没有查看隐藏文件的文件,因为一切都通过了工厂。

答案 1 :(得分:1)

只生产一个物体的工厂没有任何问题。该对象仅在一个地方实例化,例如,如果您更改构造函数参数,则只需要一次修改调用,而不是在每个实例化中遍历代码。

答案 2 :(得分:0)

在某些情况下,工厂可能很有用,如果一个类有关于如何创建实例的逻辑,但是你想对它创建的实例有一些控制:使它在单元测试中创建模拟是一个常见的用例。

在收集工厂的特殊情况下,我怀疑它不太有用。只需在课堂上调用new。这比较容易。如果您正在编写非常通用的库代码,您可能希望对正在创建的集合类型进行抽象,但是从您在问题中给出的类名称来看,它听起来并非如此。

当然这是非常通用的建议,因为我不知道你的代码。你最有条件确定,但我希望这有点帮助。