잘 설계된 모듈은 모듈 자신의 내부 데이터 및 그 외의 상세한 구현 부분(코드)을 다른 모듈로 부터 어느 정도로 숨겼느냐에 달려 있다. (정보 은닉, 캡슐화)
- 모듈들 간의 결합도를 낮춰준다.
- 모듈을 더 빨리 파악할 수 있다.
- 다른 모듈에 영향을 주지 않기 때문에 유지 보수의 부담을 덜 수 있다.
- 효과적인 성능 튜닝이 가능하다.
private
,protected
,public
,default
- 각 클래스나 멤버의 접근 허용을 가능한 최소화하자
- 클래스 설계시 우선적으로 public을 신중하게 결정한 후, 그 외의 다른 멤버들은 private으로 해야한다.