2011.04.18 16:30
 인스턴스가 가변적이어야 할 타당한 이유가 없다면, 그 클래스는 불변 클래스가 되어야 한다.

 불변 클래스는 가변 클래스에 비해 설계와 구현 및 사용이 더 쉽고, 에러 발생이 적으며 보안이나 사용 측면에서 더 안전한 장점이 있다. 


 불변 클래스를 만들 때는 다음 다섯가지 규칙을 따르자.

1. 객체의 상태를 변경하는 그 어떤 메소드(변경자라고 하는)도 제공하지 않는다.
2. 상속(inheritance)을 할 수 없도록 하자.

더보기

3. 모든 필드를 final로 지정한다. 
4. 모든 필드를 private로 지정한다.
5. 가변 컴포넌트의 직접적인 외부 접근을 막자. 

더보기

 불변 클래스의 유일한 단점은 객체가 가질 수 있는 각 값마다 별개의 객체가 필요하다는 것이다. 

 현실적으로 불변 클래스가 되기 어려운 클래스가 있는데 이런 경우에는 가능한 가변성을 제한하자. 그리고 필드를 final로 하지 않아야 될 이유가 없는 한 모든 필드를 final로 만든다.

 책에서는 불변 클래스의 성능상 단점 및 극복방안에 대한 내용이 있는데 한번 읽어보면 도움이 될 것이다.
  
신고
Posted by JAVA_HOME

댓글을 달아 주세요


티스토리 툴바