我在考虑将一个对象传递给另一个对象,以及它如何变得复杂。如果在主类中创建了对象A和对象B,并且对象A创建了对象C,那么如何将对象C传递给对象B?或者我是否应该永远不在另一个对象中创建一个对象,因此永远不会离主类太远?
这让我想到了可能发生这种情况的情况,但在我脑海中无法完全匹配它,但我想,如果我创建了两个对象,并且有一个基于位置属性确定碰撞的类怎么办?的对象。在主类中,我可以将两个对象传递给碰撞类,然后在主类中,我可以根据结果做一些工作。这是有道理的,但这是找到碰撞的最佳方法吗?或者我应该使碰撞类静态吗?
感谢对这两个问题的任何回复,抱歉没有更具体,但我正试图围绕oop概念。
答案 0 :(得分:0)
您正在考虑的概念称为dependency injection。你当然不是第一个考虑这种问题的人。
最近的大多数OOP框架都会为您处理依赖注入。实现的一个示例是在引用您的类的特定配置文件(JSON,YML,XML,...)中使用配置服务(SOA)。然后框架将以适当的依赖顺序为您实例化所有服务!
如果你想自己编写代码,你当然应该编写一个dependencyInjectionHandler
或servicesContainer
代码来完成将对象注入彼此的所有过程。
如果您来自PHP世界,您可以查看Symfony2上的实现。 喜欢Javascript?看看Danf。 您应该能够在几乎所有最近的语言中找到至少一个现有的实现。
答案 1 :(得分:0)
正如依赖注入原则告诉我们的那样 - 你永远不应该在你的对象中创建一个依赖关系(在你的情况下是对象C),如果你想使用另一个对象,你应该将它注入依赖对象,这称为 - 控制反转,最流行和最好的做法是在构造函数中注入依赖项。 至于你在哪里创建它们 - 就像你建议在顶部创建它们(你说的是主要功能)你是一个代码并将它们一直注入。根据您使用的语言和框架,您可以找到许多工具来帮助您管理更大规模的应用程序 - 这些工具通常称为DI容器。
祝你好运。