如果我有一个工厂创建一个需要另一个对象实例的对象,我应该使用另一个负责第二个对象创建的工厂,还是原厂要处理这个?
答案 0 :(得分:2)
作为大多数设计问题的答案,它取决于。如果几乎任何其他对象的实例都可用于初始化第一个对象,则可能是。这将使他们更加独立,但你的代码将会增长(通常的权衡)。另一方面,如果特定对象需要特定的其他对象,那么这应该是一个工厂(或抽象工厂)
答案 1 :(得分:1)
这完全取决于第二个对象的性质。它属于这个工厂吗?如果是这样,那么这家工厂应该处理它。如果没有,也许另一家工厂(或其他完全的工厂)应该做这项工作。
这类问题的诀窍是知道何时忽略软件工程的规则。
答案 2 :(得分:1)
正如其他两个答案所述,这取决于您需要的抽象级别。考虑可测试性和可扩展性。如果要通过工厂方法创建第二个对象,则为是。您编织两种模式以协同工作。就像你最初想要的那样把它当成一个黑盒子。
如果您想要我更详细的回答,请添加更多详细信息。