gpt4 book ai didi

circular-dependency - 接口(interface)如何解决循环依赖?

转载 作者:行者123 更新时间:2023-12-04 17:51:57 29 4
gpt4 key购买 nike

如果您搜索如何解决循环依赖,答案几乎总是“使用接口(interface)”。我知道如何使用这种技术来实现循环依赖,但我不明白它是如何解决循环依赖的。

假设我有 2 个相互引用的类 View 和 Presenter。现在我应用“解决方案”并创建接口(interface) IView 和 IPresenter。 View不再引用Presenter,而是IPresenter; Presenter 引用 IView 而不是 View。

  1. 我设置了 View,它需要一个 IPresenter。
  2. 要实现 IPresenter,我需要设置 Presenter。
  3. 要设置 Presenter,我需要一个 IView。
  4. 要实现 IView,我需要设置 View。

圈子变大了,但它还在。 View 和 Presenter 仍然相互依赖,只是不是直接。但是,我看到的每个答案都绝对确定循环依赖现在已已解决。我在这里的误解是什么?

最佳答案

循环依赖可以使用 DI 来解决,但只能使用“延迟”或“属性”注入(inject),而不是“构造函数”注入(inject)。您需要先构建对象,然后在它们上设置属性以注入(inject)依赖项。支持属性注入(inject)的 DI 容器可以抽象掉这些细节。

关于circular-dependency - 接口(interface)如何解决循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029931/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com