저자는 객체지향의 관한 내용을 흔히 알고있는 '이상한 나라의 엘리스' 에 빗대어 표현하였다. 간략히 기록하고자 한다.
객체지향의 패러다임은 지식을 추상화하고 그 지식을 객체안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리한다.
- 이상한 나라의 객체
객체들간의 협력을 설명하기전에 간략하게 '이상한 나라의 엘리스' 이야기를 언급해보겠다.
- 엘리스는 커튼 뒤 작은 문을 발견했고, 문 뒤에는 아름다운 정원이 펼쳐져 있었다. 하지만 문의 높이가 40cm 채 되지않아 정원에 들어갈수 없었지만, 신체를 조절 할 수 있는 방법[음료를 마시거나 부채질을 하거나 버섯을 먹거나 등등]들을 발견했다.
엘리스의 이야기를 가지고 객체지향과 접목시켜보겠다. 엘리스는 아름다운 정원으로 향하기 위해 키를 변화시켰다.
키를 변화시킨 것은 엘리스의 행동이며, 행동에 따라서 엘리스의 상태가 변하였다.
엘리스의 상태를 결정하는 것은 행동이지만 행동의 결과는 상태이다. 따라서 행동의 결과는 엘리스의 상태에 의존적이다.
상태를 이용하면 과거의 모든행동 이력을 설명하지 않고도 해동의 결과를 쉽게 예측할 수 있는데 그림으로 표현해보겠다.
엘리스의 상태는 객체의 프로퍼티와 프로퍼티 값, 음료라는 객체의 조합으로 표현할 수 있다.
(아직 문을 통과할 수 없는 상태이며, 음료를 마실경우 신체가 줄어들어 통과할 수 있다)
여기서 키, 위치, 음료는 엘리스의 정적인 프로퍼티가 되고, 프로퍼티가 지닌 값들은 시간의 흐름에 따라 변하기에 동적이다.
이 시점에서는 앨리스의 키와 위치가 변하였으며 음료와의 선(링크)이 사라졌다. 객체와 객체 사이의 의미 있는 연결을 링크라고한다. 링크가 존재해야만 요청 및 메시지를 주고 받을 수 있다.
- 객체의 상태는 특정 시점에 객체가 지닌 정보의 집합으로 객체의 구조적인 특징을 표현하며, 정적인 프로퍼티와 동적인 프로퍼티 값으로 구성된다. 프로퍼티는 단순한 값과 객체간의 참조하는 링크로 구분할 수 있다.
- 행동은 외부의 요청이나 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동이다. 그 결과로 객체의 상태가 변하거나 다른 객체에게 메시지를 전달할 수 있다. 객체는 행동을 통해 협력에 참여하므로 외부에 가시적이어야한다
'CS > JAVA' 카테고리의 다른 글
JAVA_중첩/내부클래스 (0) | 2025.03.10 |
---|---|
김영한의 실전 자바 기본 - 다형성 및 문제풀이 (1) | 2025.02.04 |
객체지향의 사실과 오해 - 협력하는 객체들의 공동체(1) (2) | 2023.12.13 |
JAVA - 메모리구조 (0) | 2023.06.26 |