我的组成关系如下。 SubClass使用MainClass的方法。所以它需要MainClass的引用。这样做,SubClass
与MainClass
密切相关。这样做是否明智?是否存在打破交叉依赖的方式/设计模式?
Public Class MainClass {
private SubClass subClass;
public MainClass(){
subClass=new SubClass(this);
}
public doTCPCall(){
....
}
}
Public Class SubClass {
private MainClass mainClass;
public SubClass(MainClass mainClass){
this.mainClass=mainClass;
}
public doTCPCall(){
mainClass.doTCPCall();
}
}
答案 0 :(得分:1)
如果方法MainClass.doTCPcall()
不依赖于要运行的任何特定MainClass
实例信息,则可以将其设为static
。这样,SubClass
就不需要存储MainClass
的实例。它可以调用静态方法:
public void doTCPCall() {
// Call the doTCPCall() using the class name instead of an instance
MainClass.doTCPCall();
}