이펙티브자바 아이템17
-
아이템17. 변경 가능성을 최소화하라책/이펙티브자바 2021. 7. 27. 12:55
불변클래스 간단히 말해 그 인스턴스 내부 값을 수정할 수 없는 클래스이다. 불변 인스턴스의 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 대표적인 불변 클래스 ex. String, Wrapper class, BigInteger, BigDecimal 불변클래스의 장점 가변 클래스보다 설계하고 구현하고 사용하기 쉽다. 오류가 생길 여지가 적다. 안전하다. 생성된 시점의 상태를 파괴될 때까지 그대로 간직한다. 근본적으로 스레드 안전하여 따로 동기화 할 필요가 없다. 안심하고 공유할 수 있다. 불변클래스를 만드는 법 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. 하위클래스에서 객체의 상태를 변경하는 사태를 막아준다. 대표적인 방법은 클래스를 fin..