이펙티브자바 아이템171 [Effective Java] 아이템17 변경 가능성을 최소화하라 ■ 불변 클래스란? 불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스다. 불변 클래스는 가변 클래스보다 설계하고 구현하기 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 불변 객체는 단순하며 생성된 시점의 상태를 파괴될 때까지 그대로 간직한다. ■ 불변 클래스 생성 규칙 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래스를 확장할 수 없도록한다. 클래스 final 선언 private 생성자 모든 필드를 final로 선언한다. 모든 필드를 private로 선언한다. 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 생성자, 접근자, readObject 메서드 모두에서 방어적 복사를 수행하라. 다음은 불변 복소수 클래스이다. 이 클래스는 복소수(실수부, 허수부로 구성된 수)를 표현.. 2021. 2. 17. 이전 1 다음