책임 할당하기
책임 주도 설계를 향해
- 앞의 장에서 데이터 중심 설계가 가지고 있는 단점을 파악 해 보았음
- 데이터 중심 설계에서, 책임 중심의 설계로 전환하는것이 좋음
- 책임 중심 설계를 위해 아래의 두가지 원칙을 제시
데이터보다 행동을 먼저 결정하라
<aside>
💡 객체에게 중요한것은, 데이터가 아니라 외부에 제공하는 행동 ( == 책임 )
</aside>
- 이 객체가 수행해야 하는 책임은 무엇인가를 결정한 후에, 책임을 위해 필요한 데이터는 무엇인가를 결정
협력이라는 문맥 안에서 책임을 결정하라
<aside>
💡 협력에 적합한 책임이 각 객체에 할당 되어야 함
</aside>
- 협력에 적합한 정도로 책임의 품질이 결정 됨
- 협력에 적합한 정도란 메시지 전송자에게 얼마나 적합한 책임인가를 의미
- 즉, 클라이언트의 의도에 적합한 책임을 할당해야 함
책임 할당을 위한 GRASP 패턴
GRASP 패턴이란
<aside>
💡 책임 할당을 잘하기 위한 기법 중 하나
</aside>
- General Responsibility Assignment Software Pattern의 약자 ( 일반적인 책임할당을 위한 소프트웨어 패턴 )
도메인 개념에서 출발하기
<aside>
💡 설계를 시작하기 전에, 도메인에 대한 개략적인 모습을 그려보자
</aside>
- 예를들어, 영화 예매 시스템 ( chapter 2 )의 도메인 개념 도식화 그림을 들 수 있음