불변객체 (Immutable Object)
- 객체를 생성 후 그 상태를 바꿀수 없는 객체
- 객체가 가지고 있는 멤버 변수 (properties)가 변하지 않기 때문에 중간에 값이 바꿈으로써의 버그가 나는 코드를 작성할 확률이 줄어든다.
- 변경이 되지 않기 때문에 멀티스레드 환경에서 Thread Safe하다.
- 멤버 변수가 바뀐다고 한다면 새로운 객체를 생성하면 된다.
- 기존 객체를 활용하는것이 아니고 새로운 객체가 계속 생성이 되기 때문에 Minor GC가 많이 발생이 될수가 있다.
- 메모리의 크고, CPU 사양이 좋기때문에 거의 문제가 되지 않는다
- 메모리,CPU 환경이 제약이 많은임베디드 환경에서는 문제가 될수 있다. 객체를 재 활용하는 방향으로 개발을 해야 된다.
- 자바스크립트에서 불변 객체를 사용하고 싶다면 IMMUTABLE(https://facebook.github.io/immutable-js/) 라이브러리를 사용을 하면 된다.
- 대표적으로 Java에서의 String은 불변 객체이다.
String str = "ABC";
String newStr = str.toLowerCase();
Reference
'Programing' 카테고리의 다른 글
Observer Pattern (0) | 2018.09.30 |
---|---|
MVC Pattern (0) | 2018.09.04 |
B tree, B+ tree (0) | 2018.08.25 |
At-least-once Delivery (0) | 2018.08.22 |
Reactive Programming (0) | 2018.08.19 |