<aside> 👉
현실 세계에 존재하는 사물에 대한 것은 비유임 위 같은 패러다임으로 프로그래밍을 지향하는 것.
</aside>
<aside> 👉
역할이라는 단어는 의미적으로 책임이라는 개념을 내포함. 특정한 역할은 특정한 책임을 암시함. ex) 바리스타 역할을 맡은 사람은 주문된 커피를 제조해야 할 책임이 있음.
</aside>
커피를 주문하는 프로세스를 비유하여 각 객체들을 살펴보자.
<aside> 👉
역할과 책임은 협력이 원할하게 진행되는 데 필요한 핵심적인 구성 요소임.
</aside>
graph LR
손님 -->|커피를 주문한다| 캐셔 -->|커피를 제조하라| 바리스타
바리스타 -->|커피 완성| 캐셔 -->|커피 완성| 손님
<aside> 👉
기능 구현 == 협력 협력의 성공은 각 객체의 역할과 책임을 얼마나 성실히 이행하는지에 따라 판단됨.
</aside>