아이템17. 변경 가능성을 최소화하라 불변 클래스란 그 인스턴스와 내부 값을 수정할 수 없는 클래스다. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 불변클래스를 만들기 위한 다섯가지 규칙 객체의 상태를 변경하는 메서드(변경자)를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. 모든 필드를 final로 선언한다. 모든 필드를 private으로 선언한다. 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 함수형 프로그래밍 : 피연산자에 함수를 적용해 결과를 반환하지만, 피연산자 자체는 그대로인 프로그래밍 패턴 메서드 이름을 동사형(ex.add) 대신 전치사형(ex.plus)로 사용하여 강조한다. 함수형 프로그래밍을 사용하면 불변이 되는 영역의 비율을 ..