객체지향은 실세계를 직관적으로 모델링할 수 있는 패러다임이라고 알고 있다.
하지만 아니다.
객체지향은, 고객과 사용자를 만족시킬 수 있는 "신세계"를 만드는 것이다.
그러나, 객체지향에 관한 기본적인 설명을 위해 과거의 관습적인 설명, 대중적으로 많이 알고 있는 설명을 활용해 보겠다.
손님, 캐시어, 바리스타라는 역할이 있고, 해당 역할에는 그에 맞는 책임이 있다.
역할 은 책임을 내포한다(역할이 있으면, 그에 해당하는 책임이 무조건 있다는 의미).
- 여러 사람이 동일한 역할을 수행할 수 있다.
- 대체 가능성을 의미한다.
- 책임을 수행하는 방법은 자율적으로 선택할 수 있다-커피를 만드는 방법은 자유, 커피를 완성만 하면 됨.
- 한 사람이 동시에 여러 역할을 수행할 수 있다(캐셔가 바리스타 역할도 수행함).
- 역할은 책임의 집합이다.*
목표는 협력을 통해 달성되며, 목표는 더 작은 책임으로 분할되고 책임을 수행할 수 있는 적절한 역할을 가진 사람(객체)에 의해 수행된다.
객체지향의 아름다움을 결정하는 것이 협력이다. 협력의 품질이 객체의 품질을 결정한다. 이를 위해
- 객체는 협력적이어야 한다-외부의 요청에 충실히 귀 기울이며, 외부에 적극적으로 도움을 요청해야 한다.
- 객체는 자율적이어야 한다-자기 스스로의 원칙에 따라, 어떤 일을 하거나 하지 않을 때 자율적이라고 한다.
2의 자율성을 높이기 위해, 객체가 주고받는 메시지와는 별개로 내부에서 어떻게 처리하는지는 볼 수 없게 해 놓는다. 이를 객체의 자율에 맡기게 되고, 캡슐화라고 부른다.
객체지향의 첫 번째 관문은, 객체지향을"클래스"로만 보는 것이 아니라, 메시지를 주고받는 "객체"의 관점에서 바라보아야 한다-객체의 역할, 책임, 협력에 집중하라.
'책 > 객체지향의 사실과 오해' 카테고리의 다른 글
5장 Part1. 책임과 메시지 (1) | 2025.01.01 |
---|---|
4장. 역할, 책임, 협력 (0) | 2025.01.01 |
3장. 타입과 추상화 (0) | 2025.01.01 |
2장. 이상한 나라의 객체 (2) | 2025.01.01 |
0장. 서론, 객체지향으로 가는 발걸음 (1) | 2025.01.01 |