본문 바로가기

카테고리 없음

전역변수와 Method 의 관계

반응형

하나의 Class를 설계 할때 나는 가능하면 Class가 길어지지 않도록 설계하려고 한다.

한 Class 내에서 전역변수를 사용하게 되면 좋다?

예를 들어
Class A
String a;
public void checkA(){
 System.out.println(a);
}

이렇게 하면 checkA라는 Method를 다른곳에서 재사용하고 싶은 경우에 String a를 set하는 Method를 만들어야 한다.

하지만
public void checkA(a){
 System.out.println(a);
}

라고 해놓은면 checkA를 호출할때 parameter로 a를 injection 하면 된다.

어떠한 모습이 더 좋은 모습인가?

전역변수를 사용하여 특정 Class 를 생성한 후 변수를 함께 쓰는게 좋은가.
아니면 parameter를 이용하여 Method가 독립적이 되는게 좋은가?

전역변수를 이용할 경우 class의 설계시 좋을려나?
지금 생각으로는 전역 변수를 이용하고 다른곳에서 특정 Method를 사용하고자 하는 경우 set Method를 이용하여 initial 하게 하는게 좋은 것 같다.
그러니깐...

Class class = new Class();
setA("a");
doA();
String result = class.a;

이렇게 써야된다는 예긴데..
Parameter로 하게 되면  String result = doA("a");
이렇게만 하면 된다.
그러니깐 다른곳에서 참조를 많이 하게 될 것 같은 경우는 parameter로 하는게 좋다고 생각된다.
그리고 해당 Class에서만 사용하는 경우는 전역변수를 이용하는게 좋다고 생각된다.

Method에 parameter를 넣는 경우 같은 Class 내에서 새로운 method 생성시 해당 field를 사용할 경우 매번 넣어줘야 하는 불편함이 있다.
그래서 해당 field 가 해당 class의 method에서의 참조가 많은 경우라면 전역 변수를 사용하는 것이 좋은것 같다.

외부에서 사용이 잦은 경우는 parameter를 이용하는게 좋은 것 같다.

외부에서 참조하는 경우는 객체지향의 기본 사상에 맞도록 class를 설계한 후에 외부의 parameter를 넣고 싶다면 생성자를 이용하여 넣고 생성자에서 해당 class의 전역변수에 값을 할당한 후 내부의 method는 해당 전역변수를 이용하는 것이 좋은 것 같다.

Class class = new Class("a");
이렇게 생성자를 이용해서 a field를 set하고 내부 method가 해당 field를 이용하도록 한다는 것이다.
public Class(String a){
this.a = a;
}
이렇게 하는게 좋을 것 같다.

이렇게 하면 메번 return할 필요가 없다.

반응형