본문 바로가기
공부/객체지향의 사실과 오해

객체지향의 사실과 오해(1~2)

by MNMNMNMN 2020. 12. 8.
728x90

1. 협력하는 객체들의 공동체

시너지를 생각하라. 전체는 부분의 합보다 크다.
-스티븐 코비(Stephen R. Covery)

 

객체지향의 본질

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

※ 클래스는 객체들의 협력 관계를 코드로 옮기는 도구에 불과하다.

 


2. 이상한나라의 객체

객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캠슐화함으로써
실세계 문제에 내재된 복잡성을 관리하려고 한다.
객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다.
-레베카 워프스브록(Rebecca Wirfs-Brock)[Wirfs-Brock 1990]

 

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

  • 상태 (state)
  • 특점 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현한다. 객체의 상태는 정적인 프로퍼티와 동적인 프로퍼티 값으로 구성된다.
  • 행동 (behavior)
  • 외부의 요청 또는 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동이다. 행동의 결과로 객체는 자신의 상태를 변경하거나 다른 객체에게 메세지를 전달할 수 있다. 객체는 행동을 동해 다른 객체와의 협력에 참여하므로 행동은 외부에 가시적이어야 한다.
  • 식별자 (identity)
  • 어떤 객체를 다른 객체와 구분하는데 사용하는 객체의 프로퍼티다. 값은 식별자를 가지지 않기 때문에 상태를 이용한 동등성 검사를 통해 두 인스턴스를 비교해야 한다. 객체는 상태가 변경될 수 있기 떄문에 식별자를 이용한 동일성 검사를 통해 두 인스턴스를 비교할 수 있다.

요약

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

! 주의 !

  • 객체를 설계할때 행동을 먼저 생각하고 행동에 따른 상태 값을 결정하는 것이 코드 디자인에 유리하다.
    1. 상태를 먼저 결정할 경우 캡슐화가 저해된다.
    2. 객체를 협력자가 아닌 고립된 섬으로 만든다.
    3. 객체의 재사용성이 저하된다.

 

책 구매 링크 [교보문고][알라딘][Yes24]

 

 

 

 

728x90
반응형

'공부 > 객체지향의 사실과 오해' 카테고리의 다른 글

객체지향의 사실과 오해(4)  (0) 2021.02.24
객체지향의 사실과 오해(3)  (0) 2020.12.21

댓글