반응형
public 클래스에서는 public 필드가 아닌 접근자(accessor) 메소드를 사용한다. |
-
어떤 클래스가 자신이 속한 패키지의 외부에서 접근 가능하다면 무조건 접근자 메소드를 제공하자.
-
만일 패키지 전용 클래스거나 private inner class 라면 데이터 필드를 노출해도 아무 문제가 없으며 ( 클래스 설계를 잘 했다는 가정 하에 ),
접근자 메소드를 사용하는 것보다 코드를 알아보기 쉽다.
-
public 클래스에서 내부 필드를 외부로 노출하는 것은 결코 좋은 발상이 아니지만 필드가 불변이라면 그나마 덜 해롭다.
Summary
public 클래스는 자신의 가변 필드를 절대로 외부에 노출시키지 않아야 한다.
논란의 여지는 있으나 불변 필드를 노출하는 것은 그나마 덜 해롭다.
패키지 전용 또는 private 중첩 클래스의 경우 필요하다면 필드(가변, 불변 상관없이) 노출할 수 있다.
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[Effective Java] 가급적 상속(inheritance) 보다는 컴포지션(composition)을 사용하자. (0) | 2016.10.27 |
---|---|
[Effective Java] 가변성을 최소화 하자. (0) | 2016.10.24 |
[Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. (0) | 2016.10.17 |
[Effective Java] Comparable 인터페이스의 구현을 고려하자. (0) | 2016.10.14 |
[Effective Java] clone 메소드는 신중하게 오버라이드 하자. (0) | 2016.10.10 |
댓글