下面的代码可以用来破坏Java中的循环依赖关系。在
Python的这种方式是什么?在
interface A {
int A1();
}
class X implements A {
B b;
public int X1() {
b = B(this);
b.doSomething();
}
public int A1() { ... }
}
class B {
A a;
public B(A a) {
this.a = a;
}
public doSomething() {
//...
this.a.A1();
//...
}
}
最简单、通常也是最具python风格的方法是依赖duck类型,因此依赖关系在静态代码中不是显式的,也没有循环性。在
在Java中需要接口的原因是Java强制} )作为接口,可以,但它真的没有给你带来任何好处。最好让鸭子变成鸭子:
B
类给其a
成员一个静态类型,类似地,a
参数给其构造函数。在Python中没有必要这样做,因为变量没有类型(值当然有,但是任何变量都可以包含任何类型的值)。如果你想显式地强制执行检查,你可以使用一个^{当然,仍然存在动态循环,但这不是问题。(好吧,循环的引用可能是个问题,但通常不是,而且它不是您担心的问题,它与Java没有什么不同…)
相关问题 更多 >
编程相关推荐