객체지향 연관성

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

  • 일반화와 개념과 같으나, 클래스를 보는 시점에 있어 상위의 클래스에서 하위의 클래스를 보는 관점(특수화의 역은 일반화)
  • 하위 개념으로 내려 갈수록 인스턴스는 특수화
  • 클래스로 모델화되는 실세계 객체들을 겹치지 않는 서브 클래스로 나누거나 상이한 실세계 상황으로 나누기 위해 사용