객체지향의 사실과 오해

역할, 책임, 협력

객체는 충분히 협력적, 자율적 이어야한다.

객체지향의 의사소통 수단을 메시지 라고 표현
전송하는객체를 송신자 수신하는 객체를 수신자
수신된 메시지를 처리하는 방법을 메서드

  • 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할하는 방법이다.
  • 자율적인 객체란 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미한다.
  • 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다.
  • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택한다.

객체

객체는 자신의 상태를 스스로 관리하는 자율적인 존재

상태(state), 행동(behavior), 식별자(identity)를 지닌 실체로 보는것이 효과적

상태

  • 행동의 결과를 쉽게 예측
  • 과거의 모든 행동을 기록하지 않고 행동의 결과를 상태로 이해
  • 객체의 프로퍼티는 단순한 값과 다른 객체를 참조하는 링크로 구분할 수 있다.

행동

  • 객체가 취하는 행동은 객체 자신의 상태를 변경시킨다.
  • 행동의 결과는 객채의 상태에 의존적이다.
  • 두 가지 관점의 부수효과를 명확하게 서술해야 한다
    • 객체 자신의 상태 변경
    • 행동 내에서 협력하는 다른 객체에 대한 메시지 전송