Immutable
-
변경 가능성을 최소화하라JAVA/Effective java 2021. 2. 11. 13:10
불변 클래스란 간단히 말해 그 인스턴스의 내부 값을 수정할 수 없는 클래스다. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 자바 플랫폼 라이브러리에도 다양한 불변 클래스가 있고 String, 기본 타입의 박싱된 클래스들, BigInteger, BigDecial이 있다. 불변으로 설계하는 이유는 그럴만한 이유가 있다. 불변 클래스는 가변 클래스보다 설계하고 구현하고 사용하기 쉬우며, 오류가 생길 여지도 적어 훨씬 안전한다. 클래스를 불변으로 만들려면 다음 5가지 규칙을 따르자. 1. 객체의 상태를 변경하는 메서드(변경자)를 제공하지 않는다. 2. 클래스를 확장할 수 없도록 한다. 이는 하위 클래스에서 객체의 상태를 변하게 하는 것을 막는다. 3. 모든 필드를 fi..