[아이템 15] 클래스와 멤버의 접근 권한을 최소화하라
잘 설계된 컴포넌트란? 1. 캡슐화가 얼마나 잘 되었는지. 2. 노출되는 API 와 실제 구현이 얼마나 잘 분리되었는지. 3. 메시지를 주고받는 두 컴포넌트가 서로의 내부 동작을 신경쓰지 않는지. 캡슐화를 잘 지켰을 때의 장점 1. 서로의 구현을 몰라도 되기 때문에 병렬로 개발이 가능하여 개발 속도가 빨라진다. 2. 잘 분리되어있는 컴포넌트는 관리포인트가 작다. 디버깅도 빨리 할 수 있고 다른 컴포넌트로의 교체도 빠르게 할 수 있다. 3. 잘 분리되어있는 컴포넌트는 최적화도 그 컴포넌트만 하면 되기 때문에 좋다. 4. 외부 컴포넌트에 종속되지 않기 때문에 재사용성이 높다. 5. 전체 시스템이 완성되지 않아도 개별 컴포넌트를 검증할 수 있기 때문에 큰 시스템을 개발하는 난이도를 낮춰준다. 캡슐화의 핵심은 ..
책, 강의 정리/이펙티브자바
2020. 3. 16.