책임 주도 설계 정리

책임 주도 설계 정리, 작성중입니다.

책임 주도 설계 흐름

  • 시스템이 사용제에게 제공해야하는 기능인 시스템 책임을 파악한다.
  • 시스템 책임을 더 작은 책임으로 분할한다.
  • 분할한 책임을 수행할 수 있는 적절한 객체 또는 역할을 찾아 책임을 할당한다.
  • 객체가 책임을 수행하는 도중 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 객체 또는 역할을 찾는다.
  • 해당 객체 또는 역할에게 책임을 할당함으로써 두 객체가 협력하게 된다.

디미터 법칙

  • 객체의 내부 구조에 강하게 결합되지 않도록 협력 경로를 제한하는 방법.
  • 오직 하나의 도트(.)만 사용해라.
  • 디미터 법칙에 따르면 훌륭한 메시지는 객체의 상태에 관해 묻지 말고, 원하는 것을 시켜야 한다라는 사실을 강요한다.
    • 묻지말고 시켜라(Tell. Don’t Ask)
  • 디미터 법칙은 하나의 도트(.)를 강제하는 규칙이 아니다.
    • 객체의 내부 구현에 대한 어떤 정보도 외부로 노출하지 않는다면 디미터 법칙을 준수한 경우이다. (Stream)