이상한 나라의 앨리스에서 따온 스토리텔링임을 단번에 알 수 있었다.
이상한 나라의 앨리스에 등장하는 앨리스의 모험을 예시로 들어
객체와 행동에 대한 내용을 효율적으로 설명한다.
인간은 태어날 때부터 경계가 있는 물체를 하나의 단위로 인식한다.
객체지향은 이러한 인지 방식에 기반해 세상을 객체의 집합으로 나누고 관리하는 방법이다.
앨리스는 음료를 마시거나 케이크를 먹으며 상태(state)가 변하는데,
이러한 행동(behavior)이 상태를 바꾸고, 상태에 따라 행동의 결과도 달라진다.
앨리스는 크기(몸집)와 상관없이 항상 동일한 존재(식별자, identity)로 인식된다.
=> 이로써 객체란 “상태 + 행동 + 식별자”를 가진 자율적 존재라는 개념이 정립된다.
상태는 과거의 행동 이력을 간단하게 요약한 것이며,
상태보다 행동이 먼저 설계돼야 객체지향적으로 바람직하다.
상태 중심의 설계는 캡슐화를 해치고, 협력을 고려하지 못하며, 재사용성이 낮다.
객체는 외부로부터 메시지를 받아서 반응하며,
자신의 상태는 스스로의 행동만으로 변경해야 한다.
이것이 캡슐화(encapsulation)다.
마치 버튼이 달린 기계상자처럼, 외부에서는 행동만 요청할 수 있고,
내부 상태는 보이지 않는다.
객체지향은 현실 세계를 그대로 복사하지 않는다.
오히려 현실을 기반으로 새로운 세계를 창조한다.
현실의 객체는 수동적이지만, 소프트웨어 객체는 능동적이고 지능적인 에이전트로 행동한다.
이것을 의인화(anthropomorphism)라고 부른다.
객체지향 세계는 현실과 닮은 듯 다르며, 완전한 모방이 아닌 은유(metaphor)다.
현실 객체의 이름과 구조를 빌려오되, 기능과 행동은 소프트웨어적으로 창조해낸다.
상태(state) : 객체가 현재 어떤 정보를 갖고 있는가
행동(behavior) : 객체가 외부 요청에 반응하여 수행하는 동작
식별자(identity) : 상태와 관계없이 객체를 고유하게 구별하는 기준
“행동이 상태를 결정한다”
이 문장이 이번 장의 핵심 문장으로서
행동이 상태를 결정한다는 이야기가 객체지향을 관통하는 주제라고
볼 수 있겠다.