2010-10-26 88 views
2

如果我有一个工厂创建一个需要另一个对象的实例的对象,我应该使用另一个工厂负责这个第二个对象的创建,或者原始工厂应该如何处理?如果要创建的对象需要另一个对象,工厂是否应该使用另一家工厂?

+0

它可能取决于对象如何相互依赖。总的来说,我不会滥用工厂。它不会伤害阅读关于工厂工厂的以下文章:http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 – Patrick 2010-10-26 16:43:21

回答

1

作为大多数设计问题的答案,它取决于。如果几乎任何其他对象的实例都可以用来初始化第一个对象,那么可能是。这会让他们更独立,但是你的代码将会增长(通常的折衷)。另一方面,如果特定对象需要特定的其他对象,那么这应该是一个工厂(或抽象工厂)

1

它完全取决于第二个对象的性质。它是否属于这个工厂?如果是这样,那么这家工厂应该处理它。如果不是,也许另一个工厂(或其他完全)应该做这项工作。

这种问题的诀窍是知道何时忽略软件工程的规则。

1

正如其他两个答案所述,它取决于您需要的抽象级别。考虑可测试性和可扩展性。如果第二个对象是通过工厂方法创建的,那么是的。你编织两种模式一起工作。把它当作你最初想要的黑盒子。

如果您想更详细地回答我的问题,请填写详细信息。

相关问题