2016-06-21 100 views
0

我的意思是顶层是一个在程序顶层(例如main函数)中创建的对象。在其他对象的代码中创建一个低级对象。如何将顶级对象传递给底层对象?

所以我们可以说我的主要功能如下:

public static void Main(String[] args) 
{ 
    SomeClass topLevelObject = ... 
    SomeOtherClass otherTopLevelObject = ... 
} 

现在,让我们说,otherTopLevelObject创建一个对象,它本身产生另一个对象,依此类推到一个对象,我们会打电话给lowLevelObject

那么如果lowLevelObject需要topLevelObject?什么是解决这个问题的好方法? topLevelObject是否需要沿构造函数树传递?或者,最好避免完全这样的情况。如果是这样,我该如何避免它们?

回答

0

通常情况下,您不想在topLevelObject上的lowLevelObject中创建相关性。例如,如果lowLevelObject是将数据保存到磁盘的事物,并且topLevelObject是游戏的当前状态,那么您可能不希望lowLevelObject必须知道如何解释游戏的状态。相反,你应该有topLevelObject能够实现一些接口或方法,如Serialize,那么所有lowLevelObject需要做的就是知道如何处理序列化数据。

这样,当您创建一个实现崩溃记录的新的SomeOtherClass2时,您无需修改​​lowLevelObject即可知道如何解释崩溃数据。只需实施SerializeSomeOtherClass2,其中lowLevelObject已知道如何处理。

+0

也许我需要更具体些。我有第一个对象,它是一个Java swing窗口;这里的低级对象是窗口内的一个小部件。诀窍是,窗口本身及其许多成员需要特定的第二个对象。 无论如何谢谢你的洞察力 –