我的意思是顶层是在程序的顶层之一(例如主函数)中创建的对象。在其他对象的代码中创建了一个低级对象。
所以让我说我的主要功能如下:
public static void Main(String[] args)
{
SomeClass topLevelObject = ...
SomeOtherClass otherTopLevelObject = ...
}
现在,让我们说otherTopLevelObject
创建一个对象,它本身会创建另一个对象,依此类推一个我们称之为lowLevelObject
的对象
那么如果lowLevelObject
需要topLevelObject
怎么办?解决这个问题的好方法是什么? topLevelObject
只需要沿构造函数树传递吗?或者也许最好完全避免这种情况。如果是这样,我该如何避免它们?
答案 0 :(得分:0)
通常,您不希望在lowLevelObject
topLevelObject
上创建依赖关系。例如,如果lowLevelObject
是将数据保存到磁盘,而topLevelObject
是游戏的当前状态,那么您可能不希望lowLevelObject
必须知道如何解释游戏的状态。相反,您应该topLevelObject
能够实现某些接口或方法,例如Serialize
,然后所有lowLevelObject
需要做的就是知道如何处理序列化数据。
这样,当您创建实现崩溃日志记录的新SomeOtherClass2
时,您无需修改lowLevelObject
现在就知道如何解释崩溃数据。只需为Serialize
实施SomeOtherClass2
,lowLevelObject
已知道如何处理。