책명: 객체지향의 사실과 오해
저자: 조영호
핵심 키워드: 행동(state), 상태(behavior), 식별자(identity)
객체, 그리고 소프트웨어 나라
객체란 식별 가능한 개체 또는 사물이다. 객체는 자동차처럼 만질 수 있는 구체적인 사물일 수 도 있고 시간처럼 추상적인 개념일 수 또 있다. 객체는 구별가능한 식별자, 특징적인 행동, 변경가능한 상태를 가진다.
상태
정의: 상태는 특정 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현. 객체의 상태는 객체에 존재하는 정적인 프로퍼티와 동적인 프로퍼티 값으로 정의. 객체의 프로퍼티는 단순한 값과 다른 객체를 참조하는 링크로 구분할 수 있다.
- 모든 객체의 상태는 단순한 값과 객체의 조합으로 표현할 수 있다. 이때 객체의 모든 특징을 통틀어 객체의 프로퍼티(property)라고한다.
- ex) 엘리스의 키, 위치, 음료가 엘리스의 프로퍼티
- 일반적으로 프로퍼티는 변경되지 않고 고정되기 때문에 “정적” , 반면 프로퍼티 값(property value)은 시간이 지나면 변하기 때문에 “동적”
- 객체와 객체 사이의 의미 있는 연결을 **링크(link)**라고 한다. 객체 사이에 링크가 존재해야 요청을 보내고 받을 수 있다. 즉’ 객체의 링크를 통해서만 메시지를 주고받을 수 있다.
- 객체를 구성하는 단순한 값은 속성(attribute)라고 한다.
- ex) 엘리스의 키와 위치는 단순한 값으로 표현되기에 속성이다
- ⇒ 객체의 프로퍼티는 단순한 값인 속성과 객체를 가리키는 링크 두 가지 조합으로 표현
- 객체지향의 세계에서 객체는 다른 객체의 상태에 직접적으로 접근할 수도, 상태를 변경할 수도 없다. ⇒ 행동에 의해서만 상태가 변경되는 것을 보장함으로써 객체의 자율성을 유지한다.
행동
정의: 행동이란 외부의 요청 또는 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동. 행동의 결과로 객체는 자신의 상태를 변경하거나 다른 객체에게 메시지를 전달할 수 있어야 한다. 객체는 행동을 통해 다른 객체와의 협력에 참여하므로 행동은 외부에 가시적이어야 한다.
- 객체의 상태는 저절로 변경되지 않는다. 객체의 상태를 변경하는 것은 객체의 자발적인 행동뿐이다.
- <상태와 행동사이의 관계>
- 객체의 행동은 상태에 영향을 받는다.
- 객체의 행동은 상태를 변경시킨다.
- 행동으로 발생되는 두 가지
- 객체 자신의 상태 변경
- 행동 내에서 협력하는 다른 객체에 대한 메시지
- <캡슐화> 메시지 송신자는 수신자의 상태 변경에 대해 전혀 알지 못한다. 이것이 캡슐화가 의미하는 것으로 객체는 상태를 캡슐 안에 감춰둔 채 외부로 노출하지 않는다. 객체가 외부에 노출하는 것은 행동뿐이며, 외부에서 객체에 접근할 수 있는 유일한 방법 역시 행동뿐이다. ⇒ 객체 자체의 자율성을 높인다.
식별자
정의: 식별자란 어떤 객체를 다른 객체와 구분하는 데 사용하는 객체의 프로퍼티다. 값은 식별자를 가지지 않기 때문에 상태를 이용한 동등성 검사를 두 인스턴스를 비교해야 한다. 객체는 상태가 변경될 수 있기 때문에 식별자를 이용한 동일성 검사를 통해 두 인스턴스를 비교할 수 있다.
- 객체란 인간의 인지 능력을 이용해 식별 가능한 경계를 가진 모든 사물의 의미. 객체가 식별 가능하다는 것은 객체를 서로 구별할 수 있는 특정한 프로퍼티가 객체 안에 존재한다는 것을 의미. 이 프로퍼티를 식별 자라고 함, 모든 객체는 식별자를 가지며 식별자를 이용해 객체를 구분할 수 있다.
- 단순한 값은 식별자를 가지지 않음.
종합하여
- 객체는 상태를 가지며 상태는 변경 가능하다.
- 객체의 상태를 변경시키는 것은 객체의 행동이다.
- 행동의 결과는 상태에 의존적이며 상태를 이용해 서술할 수 있다.
- 행동의 순서가 실행결과에 영향을 미친다.
- 객체는 어떤 상태에 있더라도 유일하게 식별 가능하다.
'Self-Development > Book' 카테고리의 다른 글
[book] 객체지향의 사실과오해 - 01 협력하는 객체들의 공동체 (0) | 2024.04.23 |
---|---|
[book] AI 시대 사람의 조건 휴탈리티 (1) | 2023.10.20 |
[Book] 히사이시 조 - 감동을 만들 수 있습니까. (1) | 2023.10.15 |
[book] 명상록 필사 1 (1) | 2023.08.14 |
[book] 사람은 무엇으로 사는가 -레프 톨스토이(Leo Tolstoy) (0) | 2023.05.15 |
댓글