[Book]객체 지향의 사실과 오해, 조영호: 2장

Hyunta·2021년 9월 17일
0
post-thumbnail

2. 이상한 나라의 객체

인간이 사물을 인지할 때 객체를 바라보듯이 잘게 나누어 인지한다.

본질적으로 세상의 복잡성을 극복하기 위함이다.

객체지향 패러다임의 목적은 현실 세계를 기반으로 새로운 세계를 창조하는 것이다


객체, 그리고 이상한 나라

앨리스는 음료, 부채, 버섯, 케이크을 통해 몸의 크기를 조절할 수 있다.

행동을 통해 상태를 변화시킨다.

앨리스의 특징

  • 앨리스는 상태를 가지며 상태는 변경 가능하다.
  • 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다.
    • 행동의 결과는 상태에 의존적이며 상태를 이용해 서술할 수 있다.
    • 행동의 순서가 결과에 영향을 미친다.
  • 앨리스는 어떤 상태에 있더라도 유일하게 식별 가능하다.

객체, 그리고 소프트웨어 나라

객체란:

식별 가능한 객체 또는 사물이다. 자동차 같은 구체적인 사물 or 시간처럼 추상적인 개념. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 소프트웨어 안에서 객체는 저장된 상태와 실행 가능한 코드를 통해 구현된다.

상태

상태를 이용하면 과거에 얽매이지 않고 현재를 기반으로 객체의 행동 방식을 이해할 수 있다. 상태는 세상의 복잡성을 완화하고, 인지 과부화를 줄인다.

객체의 상태를 구성하는 특징을 객체의 Property 라고 한다.

객체와 객체 사이의 의미 있는 연결을 Link 라고 한다.

객체를 구성하는 단순한 값은 Attribute라 한다.

Attribute + Link = Property

행동

객체의 상태를 변경하는 것은 객체의 자발적인 행동뿐이다.

  • 객체의 행동은 상태에 영향을 받는다.
  • 객체의 행동은 상태를 변경시킨다.

객체는 자신에게 주어진 책임을 완수하기 위해 다른 객체를 이용하고, 서비스를 제공한다.

  • 객체 자신의 상태 변경
  • 행동 내에서 협력하는 다른 객체에 대한 메시지 전송

객체는 상태를 캡슐화하여 외부에 노출하지 않고, 행동으로만 소통한다.

식별자

객체끼리 구분하기 위해 사용하는 객체의 프로퍼티.


  • 앨리스는 상태를 가지며 상태는 변경 가능하다.
  • 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다.
    • 행동의 결과는 상태에 의존적이며 상태를 이용해 서술할 수 있다.
    • 행동의 순서가 결과에 영향을 미친다.
  • 앨리스는 어떤 상태에 있더라도 유일하게 식별 가능하다.

-> 앨리스는 '객체' 이다.

기계로서의 객체

query, 객체를 조회 / command 객체의 상태를 변경

기계는 버튼을 통해서만 접근 가능하다.

행동이 상태를 결정한다.

협력에 참여하는 훌륭한 객체를 만들기 위해선 상태가 아니라 행동에 초점을 맞춰야한다.

은유와 객체

  1. 객체 지향의 핵심은 클래스가 아니라 객체이다.
  2. 객체 지향이란 현실 세계의 모방이 아니다.

현실 속에서 수동적인 존재가 소프트웨어 객체로 구현할 때는 능동적으로 변한다.

현실 세계와 객체 지향 세계 사이의 관계를 정확하게 설명하는 단어는 은유다.

profile
세상을 아름답게!

0개의 댓글