1

所有者クラス:

class University {
  List<Student> studentCollection;
  public void addStudent();
  public void removeStudent();
}

所有クラス:

class Student {
  String name;
  public void setName();
  public String getName();
}

ここで大学は学生で構成されており、大学オブジェクトを削除すると、そのすべての学生が削除されるはずです。

しかし、学生に尋ねたいのですが、それはどの大学にありますか? 学生クラスを変更して、大学を参照することはできますか?

提案されたクラス

class Student {
  String name;
  University univRef;
  /* ... */
}

これはまだ適切な構成でしょうか?UML では、これをコンポジションとしてマークできますか? それとも、双方向の関連付けに変更する必要がありますか?

注:答えの検索は成功せず、フォーマットに苦労しました:)

4

3 に答える 3

0

のドキュメントを読んでくださいjava.lang.ref.*

于 2012-06-27T14:28:33.670 に答える
0

学生としての大学への参照と、大学からすべての学生への参照を持つことは、双方向の関連付けです。また、大学は学生で構成されていないため、構成よりも適切です。

ただし、学生を大学から削除すると、その学生の大学への参照も更新されることを明確にしてください。これら 2 つの操作はアトミックに実行する必要があります。十分にテストしてください。

于 2012-06-27T14:35:58.203 に答える
0

はい、それはまだ合成です。学生はまだ大学に所有されており、大学が全焼したときにまだ殺されています。

正式には、最初の構成 (後方参照なし) は、UML クラス図でモデル化されており、大学側に塗りつぶされたひし形があり、学生側に矢印があります。後方参照のない構成は、矢印なしで表されます。ただし、多くの人は矢印の適用にそれほど厳密ではなく、一方向の構図にも 2 番目の表記法を使用します。

明確にするために、2 つの矢印でモデル化する必要があります。1 つは大学から学生への塗りつぶされたひし形の矢印で、もう 1 つは学生から大学へのひし形のない矢印です。

于 2012-06-27T16:30:10.840 に答える