Tunko Development Diary

객체지향의 사실과 오해 4장 (후기) 본문

Development/개발도서 독후감

객체지향의 사실과 오해 4장 (후기)

Tunko 2023. 11. 25. 19:57

역할, 책임, 협력

키워드

  • 역할
  • 책임
  • 협력
  • 품질
  • 호환

객체지향 설계의 전체적인 품질을 결정하는 것은

개별 객체의 품질이 아니라 여러 객체들이 모여 이뤄내는 협력의 품질이다. 109p

책임은 객체에 의해 정의되는 응집도 있는 행위의 집합

객체 명확한 책임이 필요하다.
객체는 무슨일을 하는지 알아야 된다. 그 기반이 되는게 책임이다. 무슨일을 하는지 명확해야 해당 객체는 객체로서 존속할 가치가 생긴다.
객체 가지는 책임은 생명줄 같은것 아닐까?

객체의 책임은 공용 인터페이스를 구성한다. 117p

객체의 책임은 반드시 어떤 역할을 수행할 것을 의미한다. 그렇다면 어떤 역할이라는걸 하려면? 누군가 즉, 다른 객체에 요구를 받아야 한다. 이것이 의미하는건 다른 객체와 상호작용할 수 있는 인터페이스를 의미한다.
결론적으로 객체가 가지게 되는 책임은 그 객체가 다른 객체와 상호 작용할 수 있는 인터페이스를 결정하는 역할을 한다는것으로 이해했습니다.

책임의 집합은 역할이다.

책임 = 하는 것 + 아는 것 115p

역할은 다른 객체에 의해 대체 가능함을 의미한다. p127

객체가 역할을 대체하기 위해서는 행동이 호환되어야 한다. p127

역할의 대체 가능성은 행위 호환성을 의미하고, 행위 호환성은 동일한 책임의 수행을 의미한다. p127

객체가 여러개 있다고 생각해보자 하지만 하는 일은 거의 비슷하다. 하나의 클래스의 기능을 상속받은 객체가 여러개가 존재한다. 이런 가정에서 각 객체는 서로 대체 될 수 있어야 한다는것을 의미하는것을 의미한다. 이는 공통적인 인터페이스를 제공하고 있다는것을 유추할 수 있다.

객체가 존재하는 이유는 행위를 수행하며 협력에 참여하기 위해서다. p128

디자인 패턴은 공통으로 사용할 수 있는 역할, 책임, 협력의 템플릿 p136

책임-주도 설계 (Responsibility - Driven Design) p133

  1. 시스템 책임 파악
  2. 더 작은 책임으로 분할
  3. 분할된 책임을 객체로 할당
  4. 객체가 책임을 수행중 다른 행위가 필요하면 해당 책임을 가진 객체의 역할을 찾는다.
  5. 객체가 찾아낸 다른 객체에게 자신의 책임을 일부 할당
  6. 두 객체가 협력
반응형
Comments