행동이 상태를 결정한다

"협력 안에서 객체의 행동은 결국 객체가 협력에 참여하면서 완수해야 하는 책임을 의미한다."
"따라서 어떤 책임이 필요한가를 결정하는 과정이 전체 설계를 주도해야한다."
  • 객체의 행동은 객체가 협력에 참여하는 유일한 방법이다. 따라서 객체가 적합한지를 결정하는 것은 그 객체의 상태가 아니라 행동이다.

  • 상태를 먼저 결정하고 행동을 나중에 결정했을 때 나쁜 영향

    • 캡슐화가 저해된다.

    • 객체를 협력자가 아닌 고립된 섬으로 만든다.

    • 객체의 재사용성이 저하된다.

  • 책임-주도 설계 (Responsibility-Driven Design, RDD)

    • 협력하는 객체를 만들기 위한 설계

    • 협력이라는 문맥 안에서 객체의 행동을 생각하도록 도움으로써 응집도 높고 재사용 가능한 객체를 만들 수 있게 한다.

    • 책임이라는 것은 역할을 부여받았다는 말이고 주도라는 것은 스스로 상태를 변경할지 결정한다.

    • 이러한 설계를 통해 객체는 자율성을 갖고 서로 협력한다.

Last updated