[이펙티브자바 - 아이템17] 변경 가능성을 최소화하라
4장. 클래스와 인터페이스 - GOAL 추상화의 기본 단위인 클래스와 인터페이스는 자바의 심장이다. 클래스와 인터페이스를 쓰기 편하고, 견고하며, 유연하게 만들어보자 아이템17. 변경 가능성을 최소화하라 불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스다. 불변 인스턴스에 간직된 정보는 고정되어, 객체가 파괴되는 순간까지 절대 달라지지 않는다. String, 기본타입의 박싱된 클래스들, BigInteger, BigDecimal 이 예시로 있다. 불변 클래스는 가변 클래스보다 설계하고, 구현하고 사용하기 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 클래스를 불변으로 만들기 위한 규칙 5개 객체의 상태를 변경하는 메서드(변경자)를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. 하위 클래스..
2021. 10. 9. 16:04