데이터 중심의 설계를 책임 중심의 설계로 전환하기 위한 두가지

  1. 데이터보다 행동을 먼저 결정하라
    1. 데이터 중심은 이 객체가 포함해야 하는 데이터가 무엇인지 결정한 후 데이터 처리에 필요한 오퍼레이션 결정
    2. 책임 중심은 이 객체가 수행해야 하는 책임은 무엇인지 결정한 후 이 책임을 수행하는데 필요한 데이터를 결정
  2. 협력이라는 문맥안에서 책임을 결정하라
    1. 책임은 객체의 입장이 아니라, 객체가 참여하는 협력에 적합해야 한다.

책임 주도 설계

책임 할당을 위한 GRASP(일반적인 책임 할당을 위한 소프트웨어 패턴)

1. 도메인 개념에서 출발하기

Untitled

설계 초기에 간단한 도메인 모습을 그리는 것이 좋다. 설계 초기에 의미와 관계가 완벽할 필요는 없다. 이 단계에서는 할당받을 객체들의 종류와 관계에 대한 정보를 제공할 수 있다면 충분하다.

2. 정보 전문가에게 책임을 할당하기

애플리케이션이 제공해야 하는 기능을 애플리케이션의 책임으로 생각하고, 이 책임을 애플리케이션에 대해 전송된 메시지로 간주하여 이 메세지를 책임질 첫 객체를 선택하는것이 설계의 시작이다.

‘영화 예매’라는 책임을 가지고 이 책임을 수행하기 위해 메시지를 결정해야 한다.

Untitled