본문 바로가기
반응형

불변객체2

[엘레강트 오브젝트] 3.4 충성스러우면서 불변이거나, 아니면 상수이거나 이 내용은 엘레강트 오브젝트 를 읽으면서 정리한 내용을 포함하고 있습니다. 불변 객체 예시를 알아보자 정리 관련해서 생각해볼 내용 불변 객체 불변 객체의 잘못된 사고 방식 불변 객체의 메서드를 호출할 때마다 상수(constant)처럼 매번 동일한 데이터가 반환되리라 기대 다시 말해서 모든 불변 객체가 문자열 리터럴이나 숫자처럼 동작하리라고 생각 불변 객체의 정의에 따르면 적절해 보일 수도 있겠지만 결론적으로 이런 사고 방식은 틀렸다. 결과가 변하기 때문에 상수는 아니지만, 객체가 대표하는 엔티티에 충성하기 때문에 불변 객체로 분류된다. 객체의 정의는 다음과 같다. 디스크에 있는 파일, 웹 페이지, 바이트 배열, 해시맵, 달력의 월과 같은 실제 엔티티의 대표자 기본적으로 모든 객체는 식별자, 상태, 행동을.. 2023. 3. 22.
[엘레강트 오브젝트] 2.6 불변 객체로 만드세요 이 내용은 엘레강트 오브젝트 를 읽으면서 정리한 내용을 포함하고 있습니다. 불변 클래스 불변객체의 특징 정리 불변 클래스 모든 클래스를 상태 변경이 불가능한 불변 클래스(immutable class)로 구현하면 유지보수를 크게 향상시킨다. 불변성의 특징은 다음과 같다. 크기가 작음 응집력이 높음 느슨하게 결합 유지보수하기 쉬운 클래스 불변객체는 인스턴스를 생성한 후에 상태를 변경할 수 없는 객체이다. class Cash { private final int dollars; Cash(int val) { this.dollars = val; } } final 키워드는 생성자 외부에서 프로퍼티의 값을 수정할 경우 컴파일 에러가 발생한다. 불변 객체를 수정해야 한다면 프로퍼티를 수정하는 대신 새로운 객체를 생성해야.. 2023. 3. 12.
반응형