Effective Java#15 변경 가능성을 최소화 하라
변경 불가능 클래스는 그 객체를 수정할 수 없는 클래스다. 객체 내부의 정보는 객체가 생성될 때 주어진 것이며, 객체가 살아 있는 동안 그대로 보존된다. 자바 플랫폼 라이브러리에는 이런 클래스가 많다. String, 기본 자료형 클래스, Biginteger, BigDecimal 등이 그런 클래스다. 변경 불가능 클래스를 만드는 이유는 다양하다. 우선 변경 불가능 클래스는 변경 가능 클래스보다 설계하기 쉽고, 구현하기 쉽고, 오류 가능성이 적고 더 안전하다. 변경 불가능 클래스를 만들 때 5가지 아래 규칙 1. 객체 생태를 변경하는 메서드(수정자 및 setter)를 제공하지 않는다.2. 계승할 수 없도록 한다. 잘못 작성되거나 악의적인 하위 클래스가 객체 상태가 변경된 것처럼 동작해서 변경 불가능성을 깨뜨..