728x90
반응형
책임 주도 설계 Responsibility Driven Design
데이터 중심 설계 -> 책임 중심의 설계로 전환하기 위해서는 다음의 두가지 원칙을 따라야한다.
1. 데이터보다 행동을 먼저 결정하라
객체에게 중요한 것은 데이터가 아니라 외부에 제공하는 행동이다.
객체는 협력에 참여하기 위해 존재하며 협력 안에서 수행하는 책임이 객체의 존재가치를 증명한다.
데이터 중심의 설계는 "이 객체가 포함해야하는 데이터가 무엇인가? 를 질문한다.
반면 책임 중심 설계에서는 "이 객체가 수행해야하는 책임은 무엇인가" 를 결정한 후에 "이 책임을 수행하는데 필요한 데이터는 무엇인가" 를 결정한다.
즉 책임을 먼저 결정한 후에 객체의 상태를 결정한다는 것이다.
2. 협력이라는 문맥 안에서 책임을 결정하라
책임은 객체의 입장이 아니라 객체가 참여하는 협력에 적합해야한다.
협력을 시작하는 주체는 메세지 전송자이기 때문에 협력에 적합한 책임이란 메시지 수신자가 아니라
메세지 전송자에게 적합한 책임을 의미한다.
객체가 메시지를 선택하는 것이 아니라 메시지가 객체를 선택하게 해야한다.
메시지를 먼저 결정하기 때문에 메시지 전송자는 수신자에 대한 어떠한 가정도 할 수 없다.
메시지 전송자의 관점에서 메시지 수신자가 깔끔하게 캡슐화되는 것이다.
책임 중심의 설계가 응집도가 높고 결합도가 낮으며 변경하기 쉽다고 말하는 이유가 여기에 있다.
728x90
반응형
'객체지향의 사실과 오해' 카테고리의 다른 글
| [객체지향의 사실과 오해] 5장. 책임과 메시지 (0) | 2022.07.01 |
|---|---|
| [객체지향의 사실과 오해] 4장. 역할, 책임, 협력 (1) | 2022.06.28 |
| [객체지향의 사실과 오해] 3장. 타입과 추상화 (0) | 2022.06.21 |
| [객체지향의 사실과 오해] 2장. 이상한 나라의 객체 (0) | 2022.06.16 |
| [객체지향의 사실과 오해] 1장. 협력하는 객체들의 공동체 (0) | 2022.06.14 |