Back-end
불변성
신재권
2023. 9. 8. 20:11
불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스이다.
즉, 내부 값이 변하지 않는 속성을 불변성이라 한다.
클래스 불변 생성
- 객체의 상태를 변경하는 메서드를 제공하지 않는다.
- 클래스를 확장할 수 없도록 한다.
- 모든 필드를 final로 선언한다.
- 모든 필드를 private으로 선언한다.
- 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다.
불변의 특징
불변 객체는 생성된 시점 부터 없어질 때 까지 변하지 않는다.
불변 객체는 스레드 안전하여 따로 동기화가 필요 없다.
여러 스레드가 동시에 사용도 훼손되지 않는다.
즉, 불변 객체는 안심하고 공유할 수 있다.
생성자는 불변식 설정이 모두 완료된, 초기화가 완벽히 끝난 상태의 객체를 생성해야 한다.