JAVA
2022. 2. 8.
불변객체(Immutable Object)를 사용해야하는 이유
1. 불변객체(Immutable Object)란? 불변객체는 말그대로 변하지않는 객체로 객체가 생성된후 내부 상태가 변하지 않는 객체를 의미한다. 불변객체는 Setter 메소드를 제공하지 않으며, 내부상태를 제공하는 메소드는 제공하지 않거나 방어적 복사 (defensive-copy)를 통해 제공한다. 불변이라는 키워드를 보며 바로 생각난것은 바로 final 예약어이다. 하지만 단순히 final 예약어를 사용해서 불변객체를 만드는 것이 아니다. final 예약어는 변수에 사용시 값을 수정할 수 없는 상수로 만들어주고, 메소드에 사용시 Overriding을 할 수 없고, 클래스에 사용시 상속이 불가능 하다. 즉, 객체 선언시에 final 예약어를 사용한다 하더라도, 객체 내부상태는 변경할 수 있는것이다. [..