본문 바로가기

공부 기록/영상 후기

불변 객체(immutable object)는 안정적인 개발에 아주 도움이 됩니다! 불변 객체의 개념과 장점, 구현 방법을 자바 예제를 통해 배워보아요~!

https://youtu.be/EOGOJdBy2Rg

불변 객체

객체 생성 이후에는 객체의 상태가 바뀌지 않는 객체

  

불변 객체의 장점

- 이해하기 쉽고 안정적인 서비스 개발에 도움이 된다.

- map, set, cache에 쓰기에 적절하다.

- (일반적으로) thread-safe하다. => 여러 스레드가 하나의 객체를 공유해서 사용할 때 데이터 불일치 없이 사용 가능

- 불변 객체를 필드로 쓰면 방어적 복사를 할 필요가 없다.

  

Java에서 불변 객체 만들기

- 생성자 제외, 상태를 바꾸는 메서드는 모두 제거

- 모든 필드를 private final로 지정

- final 클래스 지정 => 클래스 상속 금지 == 자녀 클래스의 메서드 오버라이드 금지

- mutable 객체의 레퍼런스를 공유해서 사용하지 말 것. 이를 위해 방어적 복사를 활용