이번 챕터의 목적


15. 클래스와 멤버의 접근 권한을 최소화하라


좋은 설계란?

잘 설계된 컴포넌트와 그렇지 못한 컴포넌트의 가장 큰 차이점은 클래스 내부 데이터와 구현 정보를 외부로부터 얼마나 잘 숨겼고 꼭 필요한 정보들만 공개를 했는가다. 잘 설계된 컴포넌트일수록 내부 구현을 완벽히 숨겨서 구현API를 분리한다. 이처럼 구현API가 분리되어있다면 사용자 입장에서는 API만 신경쓰면되고 그 결과에만 집중하면된다. 이런개념을 정보 은닉, 혹은 캡슐화라고 한다.

정보 은닉(캡슐화)의 장점

장점은 대부분 컴포넌트를 서로 독립시켜 개발,테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 하는것과 연관되있다.

자바의 정보 은닉을 위한 장치