728x90
반응형
4.역할, 책임, 협력
우리 모두를 합친 것보다 더 현명한 사람은 없다.
-켄 블랜차드(Ken Blanchard)
협력
- 협력은 한 사람이 다른 사람에게 도움을 요청할 때 시작된다.
- 요청을 받은 사람은 일을 처리한 후 요청한 사람에게 필요한 지식이나 서비스를 제공하는 것으로 요청에 응답한다.
책임
- 어떤 객체가 어떤 요청에 대해 대답해 줄 수 있거나, 적절한 행동을 할 의무가 있는 경우 해당 객체가 책임을 가진다고 말한다.
- 객체의 외부에 제공해 줄 수 있는 정보(아는 것의 측면)와 외부에 제공해줄 수 있는 서비스(하는것의 측면)의 목록이다.
- 책임의 분류
- 하는 것(doing)
- 객체를 생성하거나 계산을 하는 등의 스스로 하는것
- 다른 객체의 행동을 시작 시키는 것
- 다른 객체의 활동을 제어하고 조절하는 것
- 아는 것(knowing)
- 개인적인 정보에 관해 아는 것
- 관련된 객체에 관해 아는 것
- 자신이 유도하거나 계산할 수 있는 것에 관해 아는 것
- 하는 것(doing)
- 책임은 객체의 공용 인터페이스를 구성한다.
역할
- 역할은 협력 내에서 다른 객체로 대체할 수 있음을 나타내는 일종의 표식이다.
- 역할은 객체지향 설계의 단순성(simplicity), 유연성(flexibility), 재사용성(reusability)을 뒷받침하는 핵심 개념이다.
객체지향 설계 기법
- 책임-주도 설계(Responsibility-Driven Design)
- 시스템이 사용자에게 제공해야 하는 기능인 시스템 책임을 파악한다.
- 시스템 책임을 더 작은 책임으로 분할한다.
- 분할된 책임을 수행할 수 있는 적절한 객체 또는 역할을 찾아 책임을 할당한다.
- 객체가 책임을 수행하는 중에 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 객체 또는 역할을 찾는다.
- 해당 객체 또는 역할에게 책임을 할당함으로써 두객체가 협력하게 한다.
- 디자인 패턴(Design Pattern)
- 반복적으로 발생하는 문제와 그 문제에 대한 해법의 쌍으로 정의된다.
- 공통으로 사용할 수 있는 역할, 책임, 협력의 템플릿이다.
- 책임-주도 설계의 결과물인 동시에 지름길이다.
- 테스트-주도 개발(Test_driven Development)
- 애자일 방법론의 한 종류인 XP의 기본 프랙티스로 소개되면서 주목받기 시작한 설계 기법
- 테스트 주도 개발의 기본 흐름
- 실패하는 테스트
- 테스트를 통과하는 가장 간단한 코드 작성
- 리팩토링을 통해 중복을 제거
- 작동하는 깔끔한 코드 획득
책 구매 링크 [교보문고][알라딘][Yes24]
728x90
반응형
'공부 > 객체지향의 사실과 오해' 카테고리의 다른 글
객체지향의 사실과 오해(3) (0) | 2020.12.21 |
---|---|
객체지향의 사실과 오해(1~2) (0) | 2020.12.08 |
댓글