如果两个类都具有通过构造函数注入的依赖项,那么一个类如何在同一层中使用另一个类?这两者都不能被视为一个贯穿各领域的问题。例如:
第1层:
RepoA,RepoB
第2层:
Class1取决于RepoA
Class2依赖于RepoB,但也需要调用Class1中的方法
第3层:
Controller1依赖于Class1,Class2
这是否存在根本性缺陷,并且不存在Class2需要Class1的情况?或者Class2是否需要注入RepoA,以便它可以在需要时实例化Class1?
此外,可以将Class1注入Class2,但这必须是错误的方法。将类注入同一层(?)中的另一个类可能是有意义的。
答案 0 :(得分:1)
将一个类注入同一层中的另一个类可能是有意义的。
为什么呢?这似乎是我的解决方案......如果Class2
依赖于RepoB
和Class1
,那么它应该通过在构造函数中声明这些依赖项来显示它们,以便它们可以被注入。为什么它们来自同一层并不重要?
答案 1 :(得分:0)
如果您遵循洋葱架构,则允许[创建依赖关系]同一层和内层的任何内容,但永远不会更高。话虽如此,您可以有效地将Class1作为依赖项添加到Class2。
就我自己的2美分而言,如果这是一个需要更常见的实现,请考虑(如果有意义的话)将其添加到您的核心合同中。然后Class2可以访问IClass1.Method。