Books/객체지향의 사실과 오해

객체지향의 사실과 오해 - 객체 지도

devmomori 2022. 9. 14. 21:29

이번 챕터는 글로 써 내려가는 것보다 그림을 통해 이해하는 게 쉽다.

 

길을 묻는 방법은 현재의 마을에서 다른 마을로 이동하는 현재의 요구만을 만족시킬 수 있다. 지도는 현재의 목적뿐만 아니라 다양한 목적을 위해 재사용될 수 있다. 즉 지도는 범용적이다.

 

훌륭한 기능은 훌륭한 소프트웨어를 만들고 훌륭한 구조는 훌륭한 소프트웨어를 만들기 위한 필요조건이다.

 

게임 플레이어들은 게임 도메인을 캐릭터와 몬스터, 그리고 아이템 간의 관계로 표현한다. 중고 자동차 판매상은 구매되는 자동차와 판매되는 자동차의 교환으로 자동차 도메인을 바라본다.

 

객사오 -  189쪽 그림

 

코드의 구조가 도메인의 구조를 반영하기 때문에 도메인을 이해하면 코드를 이해하기가 수월해진다.

 

객사오 - 198쪽 그림

시스템에 할당된 커다란 책임은 시스템 안의 작은 규모의 객체들이 수행해야 하는 더 작은 규모의 책임으로 세분화된다. 도메인 모델에 명시된 정기예금이나 계좌와 같은 개념을 상태와 행위를 관리하는 자율적인 객체로 간주한다. 

 

이자 계산 기능이 변경되거나 추가되도 클래스와 클래스 간의 관계는 그대로 유지될 수 있다.

객사오 - 204쪽 : 단리, 복리 이자를 계산할 수 있는 클래스 다이어그램

 

객체지향의 가장 큰 장점은 도메인을 모델링하기 위한 기법과 도메인을 프로그래밍하기 위해 사용하는 기법이 동일하다는 점이다. - 연결 완전성

 

역방향 역시 성립할 수 있는데, 가역성이라 한다.