불변 객체 설계의 선택 기준을 나란히 비교한다
비교 항목: 생성자에서 모든 상태를 확정한다 / 값 기반 동등성을 함께 설계한다 / 불변성은 공유 비용을 낮춘다
| 확인 질문 | 판단 근거 | 코드에서 드러낼 것 |
|---|---|---|
| 생성자에서 모든 상태를 확정한다 | 필수 값을 검증해 final 필드에 저장하고 상태를 바꾸는 setter를 제공하지 않습니다. | 타입과 시작값 |
| 값 기반 동등성을 함께 설계한다 | 불변 값 객체는 보통 같은 구성 값이면 같다고 판단합니다. | 실패 또는 변경 경계 |
| 불변성은 공유 비용을 낮춘다 | 락 없이 읽을 수 있고 방어적 스냅샷으로 전달하기 쉬워집니다. | 선택한 규칙의 결과 |
선택 기준 락 없이 읽을 수 있고 방어적 스냅샷으로 전달하기 쉬워집니다.