如果你搜索如何解决循环依赖的问题,答案几乎总是“使用接口”。我知道这种技术可以用来使循环依赖工作,但我不明白这是如何“解决”循环依赖的。
比如说我有两个类View和Presenter,它们相互引用。现在我应用了这个“解决方案”,创建了IView和IPresenter接口。View不再引用Presenter,而是引用IPresenter;Presenter引用的是IView而不是View。
1. 我设置了需要一个IPresenter的View。 2. 要获取IPresenter的实现,我需要设置Presenter。 3. 要设置Presenter,我需要一个IView。 4. 要获取IView的实现,我需要设置View。
这个循环变得更大了,但仍然存在。View和Presenter仍然相互依赖,只是不再是“直接”的依赖关系。然而,我看到的每一个答案都绝对肯定地认为循环依赖现在已经被“解决”了。我的误解在哪里?
比如说我有两个类View和Presenter,它们相互引用。现在我应用了这个“解决方案”,创建了IView和IPresenter接口。View不再引用Presenter,而是引用IPresenter;Presenter引用的是IView而不是View。
1. 我设置了需要一个IPresenter的View。 2. 要获取IPresenter的实现,我需要设置Presenter。 3. 要设置Presenter,我需要一个IView。 4. 要获取IView的实现,我需要设置View。
这个循环变得更大了,但仍然存在。View和Presenter仍然相互依赖,只是不再是“直接”的依赖关系。然而,我看到的每一个答案都绝对肯定地认为循环依赖现在已经被“解决”了。我的误解在哪里?