시작


객체 지향을 처음 배울 때, 보통 실세계를 비유하여 배우곤 했다. 사실, 객체와 실세계 사물 사이에 존재하는 연관성은 희미한데 말이다.

그럼에도 왜 실세계에 비유를 하냐?

객체지향의 다양한 측면을 이해하고 학습하는 데 매우 효과적이기 때문이다.

협력1.png

객체를 현실 세계의 생명체에 비유하는 것은 상태와 행위를 “캡슐화” ”자율성” 을 설명하는 데 효과적이며, 서로 암묵적인 약속 아래 목표를 달성해 나가는 과정은 **“메시지”**를 주고 받으면서 공동의 목표를 달성하기 위해 **“협력”**하는 객체들의 관계를 설명하는 데 적합하다.

그리고 이런 사물을 기반으로 객체를 구현하는 개념은 객체지향 설계의 핵심 사상인 **“연결완전성”**을 설명하는데 적합하다.

※연결완전성: 실세계의 사물을 기반으로 소프트웨어 객체를 식별하고 구현까지 이어간다는 개념

협력하는 사람들


카페.png

‘주문한 커피를 손님에게 제공하기 위해’ 협력하는 과정에서 각자의 책임을 다한다. 커피 주문이라는 협력에 참여하는 모든 이들이 커피를 제공하기 위해 역할과 책임을 다한다는 것!