“객체지향 소프트웨어는
실세계의 투영이며, 객체란 현실 세계에 존재하는사물에 대한 추상화이다.”하지만, 막상 찾아보면, 애플리케이션을 개발하며 실세계에 직접적으로 대응되는 사물을 발견하긴 힘들다. 즉, 소프트웨어 방화벽과, 실세계의 방화벽의 의미적 거리만큼, 소프트웨어와 실세계 사이에는 어느정도의 의미적 저리가 존재한다
하지만,
실세계의 모방이라는 객체지향의 개념은 실무적인 관점에서는 부적합하지만, 객체지향의 기본 사상을 이해하고 학습하기에는 효과적이다
손님
캐시어
바리스타
‘커피 주문’이라는 협력에 참여하는 손님, 캐시어, 바리스타는
주문된 커피가 손님에게 정확히 전달될 수 있도록 맡은 바 역할과 책임을 다하고 있음
이 역할, 책임, 협력이 객체지향의 핵심적인 3가지 요소
사람들은 스스로 해결하지 못하는 문제를 마주치면 이를 해결할 수 있는 사람에게 도움을 요청(request)한다
손님 → 캐시어 : 커피를 주문캐시어 → 바리스타 : 커피를 제조하라요청을 받은 사람은 주어진 책임을 다해 필요한 지식이나 서비스를 제공, 즉, 응답(response)한다
바리스타 → 캐시어 : 커피 완성캐시어 → 손님 : 커피 완성