作文关系

时间:2015-04-02 23:46:34

标签: java

我的组成关系如下。 SubClass使用MainClass的方法。所以它需要MainClass的引用。这样做,SubClassMainClass密切相关。这样做是否明智?是否存在打破交叉依赖的方式/设计模式?

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();
   }
}

1 个答案:

答案 0 :(得分:1)

如果方法MainClass.doTCPcall()不依赖于要运行的任何特定MainClass实例信息,则可以将其设为static。这样,SubClass就不需要存储MainClass的实例。它可以调用静态方法:

public void doTCPCall() {
    // Call the doTCPCall() using the class name instead of an instance
    MainClass.doTCPCall();
}