부록. 추상화 기법

KIMA·2023년 4월 6일
1
post-thumbnail

추상화 기법

도메인의 복잡성을 단순화하기 위해 다양한 추상화 기법을 사용한다. 특성을 공유하는 객체들을 동일한 타입으로 분류하는 것은 객체지향 패러다임에서 사용하는 추상화 기법 중 한 예다.
객체지향의 큰 장점은 동일한 추상화 기법을 프로그램의 분석, 설계, 구현 단계에 걸쳐 일관성 있게 적용할 수 있다는 점이다.

이제 여러 추상화 기법을 하나씩 살펴보자.

분류와 인스턴스화

분류와 인스턴스화

분류란 객체들을 동일한 타입 또는 범주로 묶는 과정을 의미하므로 객체를 타입의 인스턴스라고 한다.
객체를 타입에 따라 분류하기 위해서는 객체가 타입에 속하는지 여부를 알아야 하고 그 여부는 타입에 대한 정확한 정의가 내려져야만 쉽게 판단할 수 있다.

정확한 정의는 다음의 세가지 관점을 필요로 한다.
1. 심볼 : 타입을 가리키는 간략한 이름이나 명칭
2. 내연 : 타입의 완전한 정의, 내연의 의미를 이용해 객체가 타입에 속하는지 여부를 알 수 있다.
3. 외연 : 타입에 속하는 모든 객체들의 집합
타입에 대한 정확한 정의를 내리기 위한 세가지 관점

일반화와 특수화

일반화와 특수화

어떤 타입이 다른 타입의 서브타입이 되기 위해서는 다음의 두 규칙을 준수해야 한다.
1. is-a 규칙 : 서브타입의 모든 인스턴스는 슈퍼타입의 집합에 포함돼야 한다. 이는 대게 영어로 서브타입은 슈퍼타입이다라는 구문을 만듦으로써 테스트할 수 있다.

  • 타입의 외연과 관련된 규칙이다.
  1. 100% 규칙 : 슈퍼타입의 정의가 100% 서브타입에 적용돼야만 한다. 서브타입은 속성과 연관관계 면에서 슈퍼타입과 100% 일치해야 한다.
  • 타입의 내연과 관련된 규칙이다.

    서브타입이 슈퍼타입 정의를 확장하는 경우에는 is a kind of관계라고 부르기도 한다.

집합과 분해

집합과 분해
합성 관계로 연결된 객체는 포함하는 객체가 제거될 때 내부에 포함된 객체도 함께 제거된다. 예를 들어 주문과 주문항목간의 관계가 그러하다.
이에 반해 연관 관계로 연결된 두 객체는 생명주기와 관련된 어떠한 제약도 부여하지 않는다.

Reference

  • 객체지향의 사실과 오해, 조영호 지음
profile
안녕하세요.

0개의 댓글