서론

4장에선, 데이터 중심의 설계는 행동보다 데이터를 먼저 결정하고 협력이라는 문맥을 벗어나 고립된 객체의 상태에 초점을 맞추기 때문에 캡슐화를 위반하기 쉽고, 요소들 사이의 결합도가 높아지며, 코드를 변경하기 어려워진다. 이러한 문제점들을 해결하기 위한 근본적인 방법은 데이터가 아닌 책임에 초점을 맞추는 것이다.

이제 객체에 책임을 할당하는 기본적인 원리를 살펴보자.


책임 주도 설계를 향해

책임중심 설계의 2가지 대원칙

데이터가 아니라 객체의 책임과 협력에 초점을 맞추라는 것이다.

데이터보다 행동을 먼저 결정하라

외부에서 제공하는(이를 ‘의존성주입’이라고 함) 행동이 중요하다.

객체가 수행하는 행동이란 곧 객체의 책임을 의미한다.

데이터는 필요한 재료를 제공할 뿐이다.

우리에게 필요한 것은 “객체의 데이터에서 행동으로 무게 중심을 옮기기 위한 기법이다”.

→ 질문의 순서를 바꾸는 것이다.