잘 설계된 모듈과 그렇지 못한 모듈을 구별 짓는 가장 중요한 속성 하나는 모듈 내부의 데이터를 비롯한 구현 세부사항을 다른 모듈에 잘 감추었느냐는 것이다. 정보은닉과 캡슐화가 잘 되어진 모듈은 모듈사이의 의존성을 낮춰서, 각자 개별적으로 개발 및 변경이 가능하다. 또한 다른 모듈에 영향을 끼칠 걱정 없이 디버깅을 진행할 수 있기 때문에 좋은 성능을 낸다고 할 순 없지만, 효과적인 성능튜닝을 할 수 있는 방법이다.
접근제어는 클래스와 인터페이스, 그리고 그 멤버들의 접근 권한을 규정한다. 접근 제어의 적절한 사용은 정보 은닉 원칙을 실현하는 핵심적인 부분이다.
각 클래스와 멤버는 가능한 한 접근 불가능하도록 만들어라
객체 필드는 절대로 PUBLIC으로 선언하면 안된다.
public static final 배열 필드를 두거나, 배열 필드를 반환하는 접근자를 정의해서는 안된다.
해결법2.배열을 private로 선언하고, 해당 배열을 복사해서 반환하는 public 메서드를 하나 추가하는 것.
요약
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[클래스와 인터페이스]규칙15. 변경 가능성을 최소화하 (0) | 2017.04.24 |
---|---|
[클래스와 인터페이스]규칙14.public 클래스 안에는 public 필드를 두지 말고 접근자 메서드를 사용하라 (0) | 2017.04.22 |
[모든 객체의 공통 메서드]규칙12.Comparable 구현을 고려하라 (0) | 2017.04.20 |
[모든 객체의 공통 메서드]규칙11.clone을 재정의할 때는 신중하라 (0) | 2017.04.19 |
[모든 객체의 공통 메서드]규칙10.toString은 항상 재정의하라 (0) | 2017.04.19 |