OOP
[오브젝트 2회독] 3장 - 역할, 책임, 협력
Donee
2024. 9. 15. 16:26
협력
- 객체는 자율적, 협력적 존재
- 자율적인 존재가 되기 위해
- 캡슐화를 통해 side-effect를 최소화
- 다른 객체와의 협력을 통해, 특정 행동을 위임할 수 있어야 함
협력을 통해 객체의 문맥이 결정
- Movie라는 객체는 일반적인 의미가 아닌, 협력 내에서 의미가 결정됨
→ 개인적 의견
- 팀 프로젝트시 가장 중요한 건, 팀원들간의 객체 이해도
- 객체가 일반적인 의미를 많이 갖고 있으면 있을수록, 이해가 빨라짐
- 따라서, 직관적 이해를 위해 일반적인 의미를 웬만하면 갖는게 더 좋음
책임
- 객체가 수행하는 행동을 의미
- 하는것, 아는것으로 나뉨
- 책임 할당
- 특정 동작 수행을 위해, 어떤 객채에게 책임을 할당할 것인지가 중요
- 필요한 정보를 가장 많이 아는 객체에게 할당해주어야 함
- 특정 동작 수행을 위해, 어떤 객채에게 책임을 할당할 것인지가 중요
- 메세지 객체 결정
- 객체의 행동을 위한 메세지 결정 → 그 메시지에 적합한 객체를 선택(not 객체의 책임이 이러하니 얘가 모든걸 처리하면 되겠다가 아님, 제일 중요한 건 메세지! 행동! 그걸 할 객체를 찾는건 다음 step)
- 이러한 결정 과정을 통해 interface가 간결해짐
행동
- 행동이 상태를 결정
- 상태는 행동을 위한 재료일 뿐, 상태가 중심이 되면 캡슐화가 저해되고 side-effect가 더 많아짐
역할
- 역할과 책임의 차이
- 역할은 교체 가능한 책임의 집합
- ex. 영화관 역할 → CGV, 롯데시네마, 메가박스 객체
결론
- 협력을 위해, 객체는 자율적 존재가 되어야 함
- 객체는 협력을 통해 문맥이 결정(→ 개인적으로 일반적인 의미와 동일하면 할수록 팀원들간 이해가 간단해짐)
- 객체에게 가장 중요한건 행동, 상태는 그를 위한 재료
- 메세지(행동)이 결정되고, 그걸 수행할 객체를 찾아야 함.