2012-12-01 1 views
1

이 두 예제는 개념적으로 동일하지만 하나는 구성이고 다른 하나는 집계입니다.집계 및 구성 - 잘못된 자습서 예

first example에서 'class (has-a) students'관계는 구성입니다.

클래스에는 학생이 포함됩니다. 학생은 수업 없이는 존재할 수 없습니다. 수업과 학생간에 구성이 있습니다.

second example에서 'department (has-a) professors'관계는 집계입니다. 그 부서에서

대학이 종료하는 경우, 부서가 더 이상 존재하지 않지만 교수는 첫 번째 일반 잘못 내 의견으로는

존재하는 것입니다. this의 코멘트 섹션에서, 그래서 @TallPaul이 첫 번째 예제에 대해서도 질문하고 있음을 주목하십시오. 실제로는 각 학기 이후에 수업에 등록한 모든 학생을 시스템에서 삭제할 것이라고 생각합니다. 게다가, C++의 컴포지션은 일반적으로 private 속성 (포인터가 아님)으로 구현되기 때문에 학생은 아마도 클래스를 초기화해야 할 것입니다. 내가 맞습니까? 첫 번째 예가 의미가있는 방법이 있습니까?

답변

2

절대 진실은 없으며 모두 모델링하는 시스템에 따라 다릅니다. 학생이 특정 클래스에만 존재하는 인스턴스이고 클래스가 삭제 될 때 시스템을 만들 수 있습니다. 그러면 학생도 마찬가지입니다. 예를 들어 클래스 사이에 학생 정보를 저장하고 싶지 않을 때이 방법이 유용 할 수 있습니다.

+0

1에 대한

참조 [자바에서 UML 협회는] 그냥 클래스 taker' 또는 비슷한 및 이해합니다 첫 번째 예'에'student' 이름을 바꿉니다. – SomeWittyUsername

0

예, 약한 예입니다. 수업에는 제목이 있어야 구성에 더 좋은 예가 될 수 있습니다. 학급과 학생의 관계는 두 가지의 수명이 다르기 때문에 집계입니다. 자세한 예

관련 문제