[英]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.