簡體   English   中英

通過構造函數傳遞Java中的對象

[英]Passing objects in java through constructor

更好的方法是:通過構造函數傳遞對象並將其保存到另一個類的新引用中,或者通過構造函數將對象直接傳遞給方法? 有什么區別嗎?

class A
{ 
  int a;
  int b;
} 

class B
{
  public A refA;

  public B(A refA)
  {
    this.refA = refA;
    methodInB(refA); 
  }

  public void methodInB(A refA)
  {
    ...
  }
}

要么 - - - - - - - - - - - - - - - - - - - - - - - - - - 要么

class A
{ 
  int a;
  int b;
} 

class B
{
  public B(A refA)
  {
    methodInB(refA);
  }

  public void methodInB(A refA)
  {
    ...
  }
}

取決於A是否是B的組成部分,methodInB是否相同。 如果我們不將A的引用放在B中,那么methodInB會成為一種實用方法,最好是靜態的。 如果不是實用程序,則它依賴於A,並且A的引用應放在B中。

同樣,如果B中還有其他方法可能需要相同的A實例進行操作,則最好將A的引用保存在B中。

如果methodInB充當實用程序,則應將其放在帶有A和B類型參數的靜態修飾符的實用程序類中。

檢查以下內容:

public class A { }
public class B { }

public class MyUtility {
    public static void methodInB(A a, B b) {
        //operate on a and b
    }
}

//  MyUtility can also have a dependency on A and B both and thus make methodInB a non static methodInB
public class MyUtilityBean {
    private A a;
    private B b;

    public void methodInB() {
        //operate on a and b
    }
}

//Other wise A acts as a dependency of B

public class B {
    private A a;
    public void methodInB() {
        //operate on a
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM