ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ch3. 타입과 추상화
    책/객체지향의 사실과 오해 2022. 3. 2. 03:58

    객체지향의 사실과 오해

    3장 타입과 추상화 (p.72 ~ 105)

    선요약

    시간에 따라 상태가 동적으로 변하는 객체를 정적으로 추상화 한것이 타입이다.
    객체는 행동에 따라 동일한 타입으로 분류될 수 있다.
    동일한 타입의 객체가 무엇인지 행동에 따라 분류하기 위해선
    1. 외부에 제공해야 하는 행동(책임)을 먼저 결정하고,
    2. 책임을 수행하는데 필요한 적절한 데이터를 결정해야 한다.

     

     

    객체와 타입

    • 객체를 분류하고 이름을 붙이는 것은 새로운 타입을 선언하는 것과 같다.
    • 객체가 어떤 타입에 속하는지 결정하는 것은 "객체가 수행하는 행동"이다.
    • 같은 타입에 속한 객체는 행동만 동일하면 서로 다른 데이터를 가질 수 있다.
      (동일한 행동이란 동일한 책임을 의미하며, 동일한 책임이란 동일한 메시지 수신을 의미한다.)
    • 따라서 같은 타입의 객체라도 데이터의 내부 표현 방식이 다르기 때문에, 동일한 메시지를 처리하는 방식은 다를 수밖에 없다.
      (다형성을 의미)
    • 데이터의 내부 표현 방식과 무관하게 행동만이 고려 대상이라는 사실은 외부에 데이터를 감춰야 한다는 것을 의미한다.
      (외부엔 행동을 드러내고, 내부엔 데이터를 숨긴다. 캡슐화)
    • 행동에 따라 객체를 분류하기 위해서는 데이터가 아닌 객체가 외부에 제공하는 행동을 먼저 생각해야 한다.
    • 즉, 외부에 제공해야 하는 행동(책임)을 결정 -> 책임을 수행하는 데 필요한 적합한 데이터를 결정

     

     

     

    타입의 계층

    일반화(슈퍼타입, supertype)

    • 포괄적인 개념
    • 일반화된 개념에 존재하는 행동은 특수화된 개념에 반드시 존재해야 한다.
    • ex. "트럼프 인간"을 일반화한 개념은 "트럼프"

    특수화(서브타입, subtype)

    • 일반화 개념 내에서 좀 더 범위가 좁은, 특수한 개념
    • 일반화된 개념에 존재하는 행동에 추가로 특수화된 개념만의 별도 행동이 존재한다.
    • ex. "트럼프"중 특수한 개념인 "트럼프 인간"

     

     

     

    타입의 목적

    • 시간에 따라 동적으로 변하는 객체의 복잡성을 극복하기 위해 타입이 사용된다.
    • 타입은 불필요한 시간, 상태변화라는 요소를 제거하고 철저하게 정적인 관점으로 객체를 묘사할 수 있게 해주는 추상화이다.

    동적모델과 정적모델

    • 동적모델은 객체 관점
    • 정적모델은 객체를 추상화한 타입 관점
      (클래스는 타입을 구현하는 여러 구현 매커니즘 중 하나)

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

    2. 이상한 나라의 객체  (0) 2022.02.22
    01. 협력하는 객체들의 공동체  (0) 2022.02.13

    댓글

Designed by Tistory.