본문 바로가기

Back-end/Java

[Java] Mutable 객체와 Immutable 객체의 차이점

Mutable 객체변경 가능 객체이고, Immutable 객체는 불변 객체라고 흔히들 말합니다.

 

Mutable 객체는 도메인 개체(도메인 클래스 혹은 엔티티)로 사용됩니다.

Mutable 객체의 변경 메서드는 Command method라고도 부르며, 리턴 타입을 void로 정의합니다.

또한 void 리턴 타입의 어떤 상태를 변경하는 매서드는 모두 Command method의 상징입니다.

 

Immutable 객체불변 객체이며 값 객체, 서비스 객체 등에 사용됩니다.

Immutable 객체의 변경 메서드변경한 객체의 복사본을 반환해야 합니다.

불변 객체는 Thread-safe 하여 멀티 스레드 환경에서 사용 가능