[Effective Java] 변경 가능성을 최소화하라.


[Effective Java] 변경 가능성을 최소화하라.

변경 가능성을 최소화하라. 불변 클래스는 인스턴스의 내부 값을 수정할 수 없는 클래스이다. 클래스를 불변으로 만들기 위한 다섯 가지 규칙 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. 하위 클래스에서 부주의하게, 나쁜 의도로 객체의 상태를 변하게 만드는 사태를 막아준다. 모든 필드를 final로 선언한다. 새로 생성된 인스턴스를 동기화 없이 다른 스레드로 건네도 문제없이 동작하게끔 보장하는데도 필요하다. 모든 필드를 private로 선언한다. 필드가 참조하는 가변 객체를 클라이언트에서 직접 접근해 수정하는 일을 막아준다. public final로만 선언해도 불변 객체가 되지만, 이렇게 하면 다음 릴리스에서 내부 표현을 바꾸지 못하기에 권하지는 않는다. 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 클래스에 가변 객체를 참조하는 필드가 하나라도 있다면 클라이언트에서 그 객체의 참조를 얻을 수 없도록 해야 한다. 클라이언트가 제공한 객...


#effectivejava #이펙티브자바 #자바

원문링크 : [Effective Java] 변경 가능성을 최소화하라.