对某些oop对象传递问题感到困惑

时间:2015-11-08 20:42:24

标签: oop object

我在考虑将一个对象传递给另一个对象,以及它如何变得复杂。如果在主类中创建了对象A和对象B,并且对象A创建了对象C,那么如何将对象C传递给对象B?或者我是否应该永远不在另一个对象中创建一个对象,因此永远不会离主类太远?

这让我想到了可能发生这种情况的情况,但在我脑海中无法完全匹配它,但我想,如果我创建了两个对象,并且有一个基于位置属性确定碰撞的类怎么办?的对象。在主类中,我可以将两个对象传递给碰撞类,然后在主类中,我可以根据结果做一些工作。这是有道理的,但这是找到碰撞的最佳方法吗?或者我应该使碰撞类静态吗?

感谢对这两个问题的任何回复,抱歉没有更具体,但我正试图围绕oop概念。

2 个答案:

答案 0 :(得分:0)

您正在考虑的概念称为dependency injection。你当然不是第一个考虑这种问题的人。

最近的大多数OOP框架都会为您处理依赖注入。实现的一个示例是在引用您的类的特定配置文件(JSON,YML,XML,...)中使用配置服务(SOA)。然后框架将以适当的依赖顺序为您实例化所有服务!

如果你想自己编写代码,你当然应该编写一个dependencyInjectionHandlerservicesContainer代码来完成将对象注入彼此的所有过程。

如果您来自PHP世界,您可以查看Symfony2上的实现。 喜欢Javascript?看看Danf。 您应该能够在几乎所有最近的语言中找到至少一个现有的实现。

答案 1 :(得分:0)

正如依赖注入原则告诉我们的那样 - 你永远不应该在你的对象中创建一个依赖关系(在你的情况下是对象C),如果你想使用另一个对象,你应该将它注入依赖对象,这称为 - 控制反转,最流行和最好的做法是在构造函数中注入依赖项。 至于你在哪里创建它们 - 就像你建议在顶部创建它们(你说的是主要功能)你是一个代码并将它们一直注入。根据您使用的语言和框架,您可以找到许多工具来帮助您管理更大规模的应用程序 - 这些工具通常称为DI容器。

祝你好运。