[Effective Java] #3 - 클래스와 인터페이스 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨서 구현과 API를 깔끔하게 분리한다. 오직 API를 통해서만 다른 컴포넌트와 소통하며 서로의 내부 동작에는 전혀 개의치 않는다.
이는 정보 은닉(캡슐화) 라는 것을 통해서 하는데, 정보 은닉의 장점은 여러가지가 있다. 개발 속도 증가, 시스템 관리 비용 저하, 성능 최적화에 도움, 재사용성 증가 등등 정보 은닉을 위해 자바에서 다양한 장치를 제공한다.
각 요소의 접근성은 그 요소가 선언된 위치와 접근 제한자 (private, public ..) 로 정해진다.
이 접근 제한자를 효율적으로 사용하는 것이 정보 은닉의 기본이다! 기본 원칙으로는 모든 클래스와 멤버의 접근성을 가능한 좁혀야 한다.
즉 소프트웨어가 올바르게 동작하는 수준으로 항상 가장 낮은 접근 수준을 부여해야한다. 패키지 외부에서 쓸 일이 없다면 private로 하는 것이 좋다.
왜냐하면 public 으로 선언하면...
#
3
원문 링크 : [Effective Java] #3 - 클래스와 인터페이스