更好的是:通过构造函数传递对象并将其保存到另一个类中的新引用,或者通过构造函数直接将其传递给方法?有什么不同吗?
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)
{
...
}
}
OR ---------------------------------------------- ----或者
class A
{
int a;
int b;
}
class B
{
public B(A refA)
{
methodInB(refA);
}
public void methodInB(A refA)
{
...
}
}
答案 0 :(得分:0)
取决于A是否是B的组成部分,对于methodInB是否相同。如果我们不在B中引用A的引用,那么methodInB就变成了一种实用方法,最好是静态的。如果它不是实用程序,则它依赖于A,A的引用应该放在B中。
如果B中还有其他方法可能需要相同的A实例来操作,那么最好将A的引用保存在B中。
如果methodInB充当实用程序,那么它应该放在一个实用程序类中,其中static修饰符采用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
}
}