如果我有一个工厂创建一个需要另一个对象的实例的对象,我应该使用另一个工厂负责这个第二个对象的创建,或者原始工厂应该如何处理?如果要创建的对象需要另一个对象,工厂是否应该使用另一家工厂?
2
A
回答
1
作为大多数设计问题的答案,它取决于。如果几乎任何其他对象的实例都可以用来初始化第一个对象,那么可能是。这会让他们更独立,但是你的代码将会增长(通常的折衷)。另一方面,如果特定对象需要特定的其他对象,那么这应该是一个工厂(或抽象工厂)
1
它完全取决于第二个对象的性质。它是否属于这个工厂?如果是这样,那么这家工厂应该处理它。如果不是,也许另一个工厂(或其他完全)应该做这项工作。
这种问题的诀窍是知道何时忽略软件工程的规则。
1
正如其他两个答案所述,它取决于您需要的抽象级别。考虑可测试性和可扩展性。如果第二个对象是通过工厂方法创建的,那么是的。你编织两种模式一起工作。把它当作你最初想要的黑盒子。
如果您想更详细地回答我的问题,请填写详细信息。
相关问题
- 1. 独家使用工厂创建对象
- 2. 如果一个工厂总是创建一个新的对象
- 3. 对象的工厂,创建需要依赖
- 4. 在另一家工厂使用来自一家工厂的异步数据
- 5. 创建域创建一个工厂的正确方式对象
- 6. 创建一个工厂方法来创建新的SqlConnection对象
- 7. 如何在Laravel的另一家工厂创建用户实例?
- 8. 创建通用对象工厂
- 9. 从另一家工厂的工厂更新数据
- 10. 使用城堡温莎创建一个对象,而不是一个工厂类
- 11. 为工厂创建抽象工厂是否有意义?
- 12. 工厂对象与工厂功能
- 13. 工厂方法VS工厂对象
- 14. 对象在不使用工厂设计时生成另一个对象是否干净?
- 15. 是否有'处理'对象的术语? (不是工厂对象)
- 16. 从另一个对象创建对象
- 17. FactoryGirl RSpec创建工厂对象时没有方法错误,其中工厂设置了该对象的属性
- 18. 创建工厂需要节点模块
- 19. 对象工厂产生一个或多个对象
- 20. 我应该在抽象工厂创建的对象上调用ioc.release()吗?
- 21. 为什么要使用抽象工厂
- 22. DDD我可以使用抽象工厂创建域对象
- 23. 如果我使用render_to_response,是否需要有一个HttpRequest对象?
- 24. 测试工厂调用另一个测试工厂
- 25. 可以让工厂类负责一次创建一个对象集合而不是一个对象
- 26. C++对象工厂函数
- 27. 对象工厂实现
- 28. 如何使用静态工厂方法创建对象?
- 29. 我需要碰撞,使一个对象坐在另一个AndEngine
- 30. 如何创建一个包含工厂控制器的工厂
它可能取决于对象如何相互依赖。总的来说,我不会滥用工厂。它不会伤害阅读关于工厂工厂的以下文章:http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 – Patrick 2010-10-26 16:43:21