본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] public 클래스에서는 public 필드가 아닌 접근자(accessor) 메소드를 사용한다.

by 돼지왕 왕돼지 2016. 10. 21.
반응형

 public 클래스에서는 public 필드가 아닌 접근자(accessor) 메소드를 사용한다.


access method, accessor, Effective JAVA, Private, private inner class, public class, public field, public 클래스, [Effective Java] public 클래스에서는 public 필드가 아닌 접근자(accessor) 메소드를 사용한다., 가변 필드, 논란 여지, 데이터 필드, 불변, 외부, 접근자, 접근자 메소드, 중첩 클래스, 코드, 패키지, 패키지 전용, 필드

-
어떤 클래스가 자신이 속한 패키지의 외부에서 접근 가능하다면 무조건 접근자 메소드를 제공하자.


-
만일 패키지 전용 클래스거나 private inner class 라면 데이터 필드를 노출해도 아무 문제가 없으며 ( 클래스 설계를 잘 했다는 가정 하에 ),
접근자 메소드를 사용하는 것보다 코드를 알아보기 쉽다.


-
public 클래스에서 내부 필드를 외부로 노출하는 것은 결코 좋은 발상이 아니지만 필드가 불변이라면 그나마 덜 해롭다.



Summary


public 클래스는 자신의 가변 필드를 절대로 외부에 노출시키지 않아야 한다.
논란의 여지는 있으나 불변 필드를 노출하는 것은 그나마 덜 해롭다.
패키지 전용 또는 private 중첩 클래스의 경우 필요하다면 필드(가변, 불변 상관없이) 노출할 수 있다.





반응형

댓글