Java 当您通过父构造函数向下传递子依赖项时,调用的模式是什么?
假设您有一个类Java 当您通过父构造函数向下传递子依赖项时,调用的模式是什么?,java,constructor,dependencies,Java,Constructor,Dependencies,假设您有一个类a,它创建一个类型为B的变量B依次创建类型为C的变量,该变量最终取决于其他类X。将X转换为C的方法如下: class A { public A(X x) { this.b = new B(x); } } class B { public B(X x) { this.c = new C(x); this.c.doSomethingWithX(); } } class C { public
a
,它创建一个类型为B
的变量B
依次创建类型为C
的变量,该变量最终取决于其他类X
。将X转换为C的方法如下:
class A {
public A(X x) {
this.b = new B(x);
}
}
class B {
public B(X x) {
this.c = new C(x);
this.c.doSomethingWithX();
}
}
class C {
public C(X x) {
this.x = x;
}
public void doSomethingWithX() {
System.out.println(x);
}
}
我们现在可以实例化一个like sonewa(newx())
最终允许内部C
使用它
这种依赖传递模式叫什么我怎样才能避免呢?这不是一种模式。你为什么认为应该避免?这会导致什么问题?我想这可能是一种反模式。我想避免它,因为我最终得到了一个很难遵循的大链,然后将a B传递给a的构造函数,将C传递给B的构造函数。附加值:您现在正在进行依赖项注入,使代码易于测试。