더북(TheBook)

1.2.2 일관성 있는 객체

객체가 항상 일관된 상태를 유지하고 일관성을 깨뜨리려는 시도가 모두 막힌다는 믿음이 있다면, 시스템 작업이 훨씬 쉬워진다. 디자인을 할 때 일관성을 고려하지 않으면, 객체가 유효하지 않은 상태를 가지게 될 수 있으므로 버그와 유지보수 문제를 야기할 수 있다.

전자 상거래 시스템에 어떤 사람이 구매 중인 제품과 최종 금액을 추적하는 Basket 클래스가 있다고 하자. 제품을 장바구니에 추가하거나 제거할 때마다 총 금액이 변경돼야 한다. 장바구니는 제품을 중복으로 추가하거나, 들어 있지 않은 제품을 제거하려는 잘못된 클라이언트 요청을 거부해야 한다.

그림 1-3의 왼쪽은 보호 장치가 있는 장바구니다. 장바구니에 요청해야만 품목을 추가하거나 제거할 수 있다. 장바구니가 완전한 통제권을 가지며 일관성을 보장한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.