객체지향 연관성
From CS Wiki
- 상위 문서: 객체지향 기법
Relationship
두 개 이상의 엔티티 형에서 데이터를 상호 참조하는 관계
관계성의 종류 | 의미 | 특성 |
---|---|---|
is-member-of | 연관화 | 링크 개념과 유사 |
is-instance-of | 분류화 | 객체 및 클래스의 인스턴스를 표현 |
is-part-of | 집단화 | 상향식, 단일 상속, 복합 객체(composite object) 표현에 유용 |
is-a | 특수화, 일반화 | 하향식, 다중 상속, 복잡한 객체 표현에 유용 |
연관화(association)[edit | edit source]
is-member-of
- 공통된 의미(semantic)를 서로 연관된 집단으로 표현하는 방법으로 링크(link)와 그 의미가 유사
- 객체들의 물리적, 또는 개념적 연결을 두 개 이상의 객체와 클래스로 표현
- 즉, 연관화는 관련되지 않은 클래스들간의 의미적 연결
분류화(classification)[edit | edit source]
is-instance-of
- 공통된 속성에 의하여 정의된 객체 및 클래스에 있어 구성원들의 인스턴스
- 즉, 분류화는 동일한 형의 특성을 갖는 객체들이 모여 클래스를 구성하는 것
- 여기서, 클래스는 객체들의 본질에 대한 추상화
집단화(aggregation)[edit | edit source]
is-part-of
- 서로 관련 있는 여러 개의 객체를 묶어 한 개의 상위 객체 생성
- 여러 개의 속성을 묶어 사용자 정의형의 엔티티를 만드는 수단으로 사용
- 한 객체에서 하나 이상의 객체는 사용자 표정의 형이 될 때 복합 객체(composite object)
- 즉, 복합 객체의 종속 성분을 모델링하기 위해 사용되며, 이들 복합 성분 클래스 관계를 통해 복합 속성 계층(composite attribute hierarchy)을 형성
일반화(generalization)[edit | edit source]
is-a
- 일반화는 객체들에 있어 공통적인 성질들을 상위 객체로 정의하고, 특수화(specialization)된 객체들을 하위의 부분형(subtype) 객체로 정의
특수화(specialization)[edit | edit source]
is-a
- 일반화와 개념과 같으나, 클래스를 보는 시점에 있어 상위의 클래스에서 하위의 클래스를 보는 관점(특수화의 역은 일반화)
- 하위 개념으로 내려 갈수록 인스턴스는 특수화
- 클래스로 모델화되는 실세계 객체들을 겹치지 않는 서브 클래스로 나누거나 상이한 실세계 상황으로 나누기 위해 사용