1

これら 2 つの例は概念的に同一であることがわかりますが、一方は合成であり、もう一方は集約です。

最初の例では、「class (has-a) students」という関係が構成要素です。

クラスには学生が含まれます。学生はクラスなしでは存在できません。クラスと生徒の間には構成があります。

2番目の例では、関係「学部 (has-a) 教授」が集約です。

大学が閉鎖されれば学科はなくなるが、学科の教授は存続する

私の意見では、最初のものは明らかに間違っています。このSO の質問のコメント セクションで、 @TallPaul が最初の例にも質問していることに注意してください。実際には、学期ごとにクラスに登録されているすべての学生がシステムから削除されると思います。さらに、C++ での構成は通常、(ポインターではなく) プライベート属性として実装されるため、学生はおそらく初期化時にクラスによって作成される必要があります。私は正しいですか?最初の例が理にかなっている方法はありますか?

4

2 に答える 2

0

はい、それらは弱い例です。クラスには主語が必要です。作曲の例としてははるかに優れています。クラスと生徒の関係は、両者の寿命が異なるため、集約です。

より詳細な例については、[JavaでのUMLアソシエーション]を参照してください1

于 2012-12-03T16:54:05.240 に答える