Item17 - 변경 가능성을 최소화 하라(1)
불변 클래스란 간단히 말해 그 인스턴스의 내부 값을 수정할 수 없는 클래스다. 불변 클래스는 가변 클래스보다 설계하고 구현하고 사용하기 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 클래스를 불변으로 만드려면 다음 다섯 가지 규칙을 따르면 된다. 1. 객체의 상태를 변경하는 메서드를 제공하지 않는다. 2. 클래스를 확장할 수 없도록 한다. => 하위 클래스에서 불변 클래스를 상속 받아 객체의 상태를 변경하는 메서드를 제공한다면 상속 받은 클래스도 부모 타입으로 타입 캐스팅해 쓸 수 있기 때문에 불변이 깨지게 된다. 그러니 불변 클래스를 final로 선언하거나 생성자를 private으로 만들면 된다. 3. 모든 필드를 final로 선언한다.(쓸 수 있으면 최대한 써라!) => 이러면 객체의 상태를 변경..
2023.11.29