역할, 책임, 협력
협력
- 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다.
책임
- 어떤 대상에 대한 요청은 그 대상이 요청을 처리할 책임이 있음을 암시한다.
- 객체지향 설계의 예술은 적절한 객체에게 적절한 책임을 할당하는 데 있다. 명확한 책임이 애플리케이션의 미래를 결정짓는다는 것을 명심하라.
- 객체지향 설계는 협력에 참여하기 위해 어떤 객체가 어떤 책임을 수행해야 하고 어떤 객체로부터 메시지를 수신할 것인지를 결정하는 것으로부터 시작된다.
역할
- 역할의 가장 큰 가치는 하나의 협력 안에 여러 종류의 객체가 참여할 수 있게 함으로써 협력을 추상화 할 수 있다는 것이다.
- 역할의 대체 가능성은 행위 호환성을 의미하고, 행위 호환성은 동일한 책임의 수행을 의미한다.
객체의 모양을 결정하는 협력
- 객체지향의 핵심은 클래스를 어떻게 구현할 것인가가 아니라 객체가 협력 안에서 어떤 책임과 역할을 수행할 것인지를 결정하는 것이다.
- 결과적으로 클래스와 데이터는 협력과 책임의 집합이 결정되 후에야 무대 위에 등장할 수 있다.
- 각 객체가 가져야 하는 상태와 행위에 대해 고민하기 전에 그 객체가 참여할 문맥인 협력을 정의하라.
- 객체를 충분히 협력적으로 만든 후에 협력이라는 문맥 안에서 객체를 충분히 자율적으로 만드는 것이다.
객체지향 설계 기법
- 객체지향 설계의 핵심은 올바른 책임을 올바른 객체에 할당하는 것이다.
- 효과적으로 일하는 사람들의 한 가지 특징은 아무것도 없는 상태에서 작업을 시작하지 않고 이전의 훌륭한 결과물을 모방하고 약간의 수정을 거쳐 원하는 결과물을 만들어 낸다는 것이다.
- 디자인 패턴은 책임-주도 설계의 결과물인 동시에 지름길이다.
- 테스트-주도 개발은 책임-주도 설계의 기본 개념을 따른다.
- 객체지향을 강력하게 만드는 비밀은 책임과 메시지에 숨겨져 있다.
참고 서적: http://www.yes24.com/Product/Goods/18249021?scode=032&OzSrank=1
'개발관련 서적 정리 > 객체지향의 사실과 오해' 카테고리의 다른 글
05. 책임과 메시지 (0) | 2020.10.07 |
---|---|
03. 타입과 추상화 (0) | 2020.10.07 |
02. 이상한 나라의 객체 (0) | 2020.10.07 |
01. 협력하는 객체들의 공동체 (0) | 2020.07.02 |