불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스이다.
즉, 내부 값이 변하지 않는 속성을 불변성이라 한다.
클래스 불변 생성
- 객체의 상태를 변경하는 메서드를 제공하지 않는다.
- 클래스를 확장할 수 없도록 한다.
- 모든 필드를 final로 선언한다.
- 모든 필드를 private으로 선언한다.
- 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다.
불변의 특징
불변 객체는 생성된 시점 부터 없어질 때 까지 변하지 않는다.
불변 객체는 스레드 안전하여 따로 동기화가 필요 없다.
여러 스레드가 동시에 사용도 훼손되지 않는다.
즉, 불변 객체는 안심하고 공유할 수 있다.
생성자는 불변식 설정이 모두 완료된, 초기화가 완벽히 끝난 상태의 객체를 생성해야 한다.
'Back-end' 카테고리의 다른 글
Spring MVC (0) | 2023.09.15 |
---|---|
@Bean, @Configuration (0) | 2023.09.14 |
Spring DI 방식 (0) | 2023.09.08 |
JDK 동적 프록시, CGLIB (0) | 2023.09.08 |
상속보다 합성을 이용하는 이유 (0) | 2023.09.06 |