(Effective Java) 클래스와 인터페이스

*정보은닉이 중요한 이유는, 정보은닉이 시스템을 구성하는 모듈 사이의 의존성을 낮춘다.(decouple)

* 각 클래스와 멤버는 가능한 한 접근 불가능하도록 만들라

* 객체 필드는 절대로 public으로 선언하면 안된다.
* 변경가능 public 필드를 가진 클래스는 다중 스레드에 안전하지 않다. 변경 불가능 객체를 참조하는 final 필드라 해도 public 으로 선언하면 클래스의 내부 데이터 표현 형태를 유연하게 바꿀수없게된다. 공개 API의 일부가 되어버리므로, 삭제하거나 수정할 수 없게된다.
공개 API의 일부가 되어버리므로, 삭제하거나 수정할 수 없게 되는 것이다.
이 말은 static에도 해당된다. 단, 어떤 상수들이 클래스로 추상화된 결과물의 핵심적 부분을 구성한다고 판단되는 경우, 해당 상수들을 public static final 필드들로 선언하여 공개할수 있다.

이런 필드들은 대문자로 구성된 이름을 가지며, 이름을 구성하는 단어들은 밑줄 기호로 구분한다.








댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬