본문 바로가기
Back-end

불변성

by 신재권 2023. 9. 8.

불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스이다.

즉, 내부 값이 변하지 않는 속성을 불변성이라 한다.

클래스 불변 생성

  • 객체의 상태를 변경하는 메서드를 제공하지 않는다.
  • 클래스를 확장할 수 없도록 한다.
  • 모든 필드를 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