나는 종종 내 클래스의 일부 메소드에서 공통 데이터를 사용해야 할 때 사용할 두 가지 방법 중 하나를 결정하기 위해 고심하고 있습니다. 더 나은 선택은 무엇입니까?
이 옵션에서 추가 변수를 선언 할 필요가없고 메소드 매개 변수를 정의하지 않아도되도록 인스턴스 변수를 작성할 수 있지만 해당 변수가 인스턴스화 / 수정되는 위치가 명확하지 않을 수 있습니다.
public class MyClass {
private int var1;
MyClass(){
doSomething();
doSomethingElse();
doMoreStuff();
}
private void doSomething(){
var1 = 2;
}
private void doSomethingElse(){
int var2 = var1 + 1;
}
private void doMoreStuff(){
int var3 = var1 - 1;
}
}
아니면 지역 변수를 인스턴스화하고 인수로 전달합니까?
public class MyClass {
MyClass(){
int var1 = doSomething();
doSomethingElse(var1);
doMoreStuff(var1);
}
private int doSomething(){
int var = 2;
return var;
}
private void doSomethingElse(int var){
int var2 = var + 1;
}
private void doMoreStuff(int var){
int var3 = var - 1;
}
}
대답이 둘 다 맞다면, 어느 것이 더 자주 보이거나 사용됩니까? 또한 각 옵션에 대해 추가 장단점을 제공 할 수 있다면 매우 가치가 있습니다.