Object 란 단순히 logic 과 data 묶음 이상이다. Object 는 service-provider 이며, information holder 이며, structurer 이며, coordinator 이며, controller 이며, 바깥 세상을 위한 interfacer 이다. 각각의 Object 들은 자신이 맡은 부분에 대해 알며, 역할을 해 내야 한다. 이러한 ResponsibilityDrivenDesign 은 디자인에 대한 유연한 접근을 가능하게 한다. 다른 디자인 방법의 경우 로직과 데이터를 각각 따로 촛점을 맞추게끔 하였다. 이러한 접근은 자칫 나무만 보고 숲을 보지 못하는 실수를 저지르게 한다. RDD는 디자인과 구현, 그리고 책임들에 대한 재디자인에 대한 실천적 조언을 제공한다.
RDD는 객체 디자인에 대해 명확하게 사고할수 있도록 도와주고 객체 지향 기술의 장점을 최대한 이용하는데 도움을 준다.
- object 에 대해서 기존의 'data + algorithms' 식 사고로부터 'roles + responsibilities' 로의 사고의 전환.
장점 ¶
- RDD merges communication paths between classes, thus reducing the coupling between classes.
- Partitions and layers subsystems.
- Generates DesignPatterns. ChainofResponsibilityPattern, MediatorPattern, CommandPattern and TemplateMethodPattern are all generated by the method.
관련 자료 ¶
- SeparationOfConcerns - 논문에 관련 내용이 언급된 바 있음.
- ResponsibilityDrivenDesign
- Wirfs-Brock's DesigningObjectOrientedSoftware (중앙도서관에 있음)
- http://www.wirfs-brock.com/pages/home.html