먼저 견고하고 깔끔한 협력을 설계하자.(129p)
이렇게 결정된 요청과 응답의 흐름(=협력)은 객체가 협력에 참여하기 위해 수행될 책임이 된다.(그리고 알맞은 객체에 책임을 할당하라!)
객체와 책임을 제자리에 배치한 후에 책임의 구현을 생각해도 늦지 않는다.
협력은 요청과 응답의 연쇄이다.
협력은 비슷한 종류의 책임의 집합이다.
책임은 '아는 것'과 '하는 것'으로 나뉜다.
하는 것 : 외부에 제공하는 서비스
아는 것 : 외부에 제공하는 정보
역할은 협력의 추상화이다.
어떤 메시지를 주고 받느냐, 받을 수 있느냐에 대해서 집중하자
책임, 역할의 개념은 유연성, 단순성, 재사용성을 뒷받침하는 핵심 개념이다.
: 패턴은 특정한 상황에서 설계를 돕기 위해 모방하고 수정할 수 있는 과거의 설계 경험이다.(거인의 어깨 위에서 공부하라!)