이번 챕터는 글로 써 내려가는 것보다 그림을 통해 이해하는 게 쉽다.
길을 묻는 방법은 현재의 마을에서 다른 마을로 이동하는 현재의 요구만을 만족시킬 수 있다. 지도는 현재의 목적뿐만 아니라 다양한 목적을 위해 재사용될 수 있다. 즉 지도는 범용적이다.
훌륭한 기능은 훌륭한 소프트웨어를 만들고 훌륭한 구조는 훌륭한 소프트웨어를 만들기 위한 필요조건이다.
게임 플레이어들은 게임 도메인을 캐릭터와 몬스터, 그리고 아이템 간의 관계로 표현한다. 중고 자동차 판매상은 구매되는 자동차와 판매되는 자동차의 교환으로 자동차 도메인을 바라본다.
코드의 구조가 도메인의 구조를 반영하기 때문에 도메인을 이해하면 코드를 이해하기가 수월해진다.
시스템에 할당된 커다란 책임은 시스템 안의 작은 규모의 객체들이 수행해야 하는 더 작은 규모의 책임으로 세분화된다. 도메인 모델에 명시된 정기예금이나 계좌와 같은 개념을 상태와 행위를 관리하는 자율적인 객체로 간주한다.
이자 계산 기능이 변경되거나 추가되도 클래스와 클래스 간의 관계는 그대로 유지될 수 있다.
객체지향의 가장 큰 장점은 도메인을 모델링하기 위한 기법과 도메인을 프로그래밍하기 위해 사용하는 기법이 동일하다는 점이다. - 연결 완전성
역방향 역시 성립할 수 있는데, 가역성이라 한다.
'Books > 객체지향의 사실과 오해' 카테고리의 다른 글
객체지향의 사실과 오해 - 책임과 메시지 (2) | 2022.09.07 |
---|---|
객체지향의 사실과 오해 - 타입과 추상화 | 역할, 책임, 협력 (0) | 2022.08.31 |
객체지향의 사실과 오해 - 이상한 나라의 객체 (0) | 2022.08.17 |
객체지향의 사실과 오해 - 협력하는 객체들의 공동체 (0) | 2022.08.10 |