독서 기록

2022년 8월 6일 TIL - 객체 그 자체보다는 협력을 먼저 생각하자

innu3368 2022. 8. 6. 23:57

 

본 TIL에서는 객체지향의 오해와 진실 4장을 읽고 흐름을 정리하였다.

 

협력

  • 객체들 간의 협력들이 모인 하나의 구조에서 개별 협력은 객체가 다른 객체에게 보내는 요청과, 요청받은 객체가 요청한 객체에게 보내는 응답으로 이루어진다.
  • 객체를 설계할 때에는 다른 객체들과 잘 협력할 수 있는 구조를 갖도록 해야 한다.
  • 객체의 행동은 객체가 어떤 협력에 참여하는지에 따라 결정되며, 객체의 상태는 그 행동에 따라 결정된다.

 

책임

  • 협력 구조에서는 개별 협력에 참여하는 객체가 어떤 요청을 보내고, 요청을 받으면 어떤 응답을 할 것인지에 대한 책임을 확립해야 한다.

 

역할

  • 특정 협력에 따르는 책임을 이행하기 위해 수행해야 하는 역할이 정의된다.
  • 협력 구조에 참여하는 객체는 해당되는 역할을 이행할 수 있는 또다른 객체로 대체될 수 있음
  • 협력 구조에서 역할 개념을 고려할 경우 다음과 같은 이점이 있다.
    • 협력에 참여할 객체를 유연하게 결정할 수 있다.
    • 협력 구조를 재사용할 수 있는 여지가 높아진다.
    • 협력 구조 자체가 하나의 구조로 추상화되는 것이므로 하나의 협력 구조에 대해 단순하게 접근할 수 있다.

 

객체의 형태를 결정하는 협력

올바른 방식으로 객체를 설계하기 위해 다음의 과정을 고려해볼 수 있다.

 

  1. 협력의 흐름을 설계한다.
  2. 협력에 참여시킬 객체를 결정한다.
  3. 객체가 협력 내에서 수행할 행동을 정의한다.
  4. 객체가 행동을 수행하기 위해 필요한 데이터를 정의한다.
  5. 행동과 데이터를 바탕으로 객체를 구현한다.