[Java] 불변 클래스로 변경 가능성을 최소화하자
·
Java
Effective Java의 Item 17을 읽고 정리한 내용입니다. 변경 가능성을 최소화하라 불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스를 의미한다. (객체가 파괴되는 순간까지 절대 달라지지 않는다.) 클래스를 불변으로 만들기 위한 규칙 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. (final 키워드 사용) 클래스의 모든 필드를 final로 선언한다. 클래스의 모든 필드를 private로 선언한다. 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 5번 규칙이 잘 이해가 되지 않아 좀 더 자세히 정리해 봤다. 5번 규칙이 의미하는 바는 캡슐화라는 불변성의 측면을 나타내는데 더 자세히 말하면 객체의 내부 상태가 자체 메서드를 통해서만 변경되..