2

我曾经有

CustomerCollection extends AbstractCollection
OrderCollection extends AbstractCollection
etc...

但我意识到我并不真的需要它们,一个人Collection就可以了。

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

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

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

4

3 回答 3

4

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

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

我可以在工厂切换水合器,一切都很好(只需要对水合器进行编码,但这超出了范围:P)

因此,我不需要更改所有代码行,而是只需要更改一个,它就可以再次工作,并且没有在文件中查找隐藏的初始化,因为一切都通过了工厂。

于 2013-05-25T10:12:56.790 回答
1

只生产一个对象的工厂并没有错。该对象仅在一个地方实例化,例如,如果您更改构造函数参数,则您只有一次调用来修改,而不是为每个实例化遍历您的代码。

于 2013-05-25T10:12:48.563 回答
0

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

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

当然,这是非常通用的建议,因为我不知道您的代码。您最适合确定这一点,但我希望这会有所帮助。

于 2013-05-25T10:38:29.673 回答