사람은 아기 때부터 뚜렷한 경계를 가지고 함께 행동하는 물체를 하나의 개념으로 인지함 =⇒ 객체
선천적으로 타고난 인지 능력을 이용해 세상에 존재하는 다양한 객체를 식별하고 분류함으로써 세상을 이해한다. → 세상을 더 작은 객체로 분해하는 것은 본질적으로 세상이 포함하고 있는 복잡성을 극복하기 위한 인간의 작은 몸부림
객체란 인간이 분명하게 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것
객체 지향 패러다임 → 현실 세계를 기반으로 새로운 세계를 창조하는 것
앨리스 객체
앨리스가 한 행동의 결과는 앨리스의 상태에 의존적이다.
행동간의 순서 → 크기를 줄여야 작은 문을 통과할 수 있음
-상태를 가지며 변경 가능
-상태를 변경시키는 것은 앨리스 객체의 행동
- 행동의 결과는 상태에 의존적이며 상태를 이용해 서술할 수 있음
- 행동의 순서가 결과에 영향을 미친다
-앨리스 객체는 어떤 상태에 있더라도 유일하게 식별 가능하다
상태와 프로퍼티
단순한 값들(Attributes)은 객체가 아니다, 객체의 상태를 표현하기 위해 사용됨
다른객체와의 연결로 관계 표현(링크)
앨리스 객체가 음료 객체를 들고 있음(링크를 통해 메시지 전달)
모든 특징을 객체의 프로퍼티라고 함 = 단순값인 속성(Attribute), 다른 객체를 가르키는 링크(link)로 구성됨
객체의 상태를 변경하는 것은 객체의 자발적인 행동뿐
- 객체의 행동은 상태에 영향을 받는다.
- 객체의 행동은 상태를 변화시킨다.
상호작용의 관점에서
- 상호작용이 현재의 상태에 어떤 방식으로 의존하는가
- 상호작용이 어떻게 현재의 상태를 변경시키는가
객체라는 블랙박스 기계 → 외부에 부착된 몇개의 버튼들로 작동함
객체지향 설계에 있어서
초보자들 → 객체의 상태를 정의하고 그에 따른 행동들을 결정함
객체의 행동 = 가장 중요
- 객체는 다른 객체와 협력하기 위해 존재
- 행동은 객체가 협력에 참여하는 유일한 방법
객체지향 설계자들이라면
→ 협력부터 결정 → 협력에 필요한 행동들 결정 → 그에 필요한 객체들을 결정
책임-주도 설계(RDD)
은유와 객체
오해 ' 객체지향은 현실세계의 모방' → 추상화(핵심) 을 통해
→ 그러나 소프트웨어 객체는 현실의 객체가 아닌 다른 것이다.
현실의 객체들 - 수동적이었어도 → 소프트웨어 객체들은 능동적임
→ 현실의 객체가 가지지 못하는 추가적인 능력을 보유하게 됨 (의인화)
소프트웨어 객체를 현실세계 객체의 은유로 여길수 있음
→ 은유를 효과적으로 사용할 경우(이름을 잘지을 경우)
→ 표현적 차이를 줄일 수 있으며, 이해하기 쉽고 유지보수가 용이한 소프트웨어를 만들 수 있다.
객체지향 설계자로서 → 현실을 모방하는 것이 아닌 → 이상한 나라를 창조하기만 하면 된다.
'공부기록 > 객체지향' 카테고리의 다른 글
객체지향의 사실과 오해 - Chapter 6 객체 지도 (0) | 2021.06.18 |
---|---|
객체지향의 사실과 오해 - Chapter 5 책임과 메시지 (0) | 2021.06.13 |
객체지향의 사실과 오해 - Chapter 4 역할, 책임, 협력 (0) | 2021.06.12 |
객체지향의 사실과 오해 - Chapter 3 타입과 추상화 (0) | 2021.06.04 |
객체지향의 사실과 오해- Chapter 1 협력하는 객체의 공동체 (0) | 2021.05.31 |