Javaクラス間のモデリングされたアソシエーションについて

アソシエーションとは、クラス間の関係です。関連は、要素間の永続的な参照と考えることができます。アソシエーションは、クラス図でモデリングされたJavaクラス間およびJavaインタフェース間に作成できます。

注意: アソシエーションの2つの終端には異なる名前が必要です。また、あるクラスの反対側にあるアソシエーションの終端に、そのクラスのフィールドと同じ名前を付けることもできません。アソシエーション名は、大/小文字の違いに関係なく、ネームスペース内で一意である必要があります。

JavaクラスとJavaインタフェースの間のアソシエーションは、元のJavaクラスのコード中で、デフォルトでprotectedのフィールドとして表されます。JavaインタフェースとJavaクラスの間のアソシエーションは、そのインタフェースのコード中でpublicのフィールドとして表されます。

注意: モデリングされたアソシエーションのプロパティを迅速に変更するには、ダイアグラムでアソシエーションをダブルクリックし、アソシエーションの詳細を指定します。これにより、アソシエーションの集約などのアソシエーションのプロパティを変更できます。

アソシエーションが複雑でなく、Javadocを使用しなくても判断できる場合を除き、アソシエーションを実装するJavaクラスのアソシエーションを表すフィールドには、モデリングされたアソシエーションの詳細を指定するJavadocがあります。 次に例を示します。

/**
* Comment here
* @link aggregationByValue
* @associates <{model.JavaClass1}>
*/
protected List javaClass20;

注意: アソシエーションに対して最低限の数のJavadocタグが作成されます。タグは、フィールド宣言から推測できないアソシエーションの詳細を明確化するために使用されます。

アソシエーションの終端について

アソシエーションの終端は、それがアソシエーションの中でどのように機能するのかを定義します。アソシエーションの終端には、次の3つの種類があります。

アソシエーションの終端 アソシエーション
Simple Association 単純なアソシエーション: どちらのクラスも特別な意味や所有権を持ちません。
Weakly Aggregated Association 弱い集約: アソシエーションはこのアソシエーションのクラス定義の一部を構成します。集約されたクラスの存続期間は、このアソシエーションのクラスの存続期間に依存しません。
Strongly Aggregated Association (Composition) 強い集約(コンポジション): アソシエーションのもう一方の終端にあるクラスは、このアソシエーションによって識別されるクラスの一部を構成し、そのクラスによって所有されています。集約されたクラスの存続期間は、このアソシエーションのクラスの存続期間に依存します。

アソシエーションのロールを定義する際に、そのアソシエーションのもう一方の終端にある要素に影響する特性も指定します。特に、アソシエーションの一方の終端にあるオブジェクトが、もう一方の終端のフィールドをどの程度変更できるかを指定できます。


関連項目

Javaクラスのダイアグラムの作成
ダイアグラム上のノードの接続
モデリングされたJavaフィールドについて

 

Copyright © 1997, 2004, Oracle. All rights reserved.