인간이 사물을 인지할 때 객체를 바라보듯이 잘게 나누어 인지한다.
본질적으로 세상의 복잡성을 극복하기 위함이다.
객체지향 패러다임의 목적은 현실 세계를 기반으로 새로운 세계를 창조하는 것이다
앨리스는 음료, 부채, 버섯, 케이크을 통해 몸의 크기를 조절할 수 있다.
행동을 통해 상태를 변화시킨다.
앨리스의 특징
식별 가능한 객체 또는 사물이다. 자동차 같은 구체적인 사물 or 시간처럼 추상적인 개념. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 소프트웨어 안에서 객체는 저장된 상태와 실행 가능한 코드를 통해 구현된다.
상태를 이용하면 과거에 얽매이지 않고 현재를 기반으로 객체의 행동 방식을 이해할 수 있다. 상태는 세상의 복잡성을 완화하고, 인지 과부화를 줄인다.
객체의 상태를 구성하는 특징을 객체의 Property 라고 한다.
객체와 객체 사이의 의미 있는 연결을 Link 라고 한다.
객체를 구성하는 단순한 값은 Attribute라 한다.
Attribute + Link = Property
객체의 상태를 변경하는 것은 객체의 자발적인 행동뿐이다.
객체는 자신에게 주어진 책임을 완수하기 위해 다른 객체를 이용하고, 서비스를 제공한다.
객체는 상태를 캡슐화하여 외부에 노출하지 않고, 행동으로만 소통한다.
객체끼리 구분하기 위해 사용하는 객체의 프로퍼티.
-> 앨리스는 '객체' 이다.
query, 객체를 조회 / command 객체의 상태를 변경
기계는 버튼을 통해서만 접근 가능하다.
협력에 참여하는 훌륭한 객체를 만들기 위해선 상태가 아니라 행동에 초점을 맞춰야한다.
현실 속에서 수동적인 존재가 소프트웨어 객체로 구현할 때는 능동적으로 변한다.
현실 세계와 객체 지향 세계 사이의 관계를 정확하게 설명하는 단어는 은유다.