5

アグリゲーション、依存関係、アソシエーションなどの基本的な UML 関係を Java クラスにマップするにはどうすればよいでしょうか? これは実際にどのように機能しますか?

4

1 に答える 1

4

依存関係は何でもかまいません。そのため、これがどのように Java にマップされているかわかりません。クラスをローカル変数型として単純に使用することもできます。コードにまったく表示されない依存関係でさえある可能性があります。

アソシエーションはより具体的です。通常、他の変数を参照しているクラスのインスタンス変数 (属性/フィールド) によって実装されます。双方向関連の場合、他のクラスには対応する属性があります。上限が 1 の場合、対応するロールはプレーンな Java フィールドです。1 より大きい場合、コレクションが使用されます。別の実装スキームでは、リンク タプルのコレクションを持つ追加のクラスを使用します。双方向の関連付けの場合、「参照整合性」についても調査する必要があります。

アグリゲーションは特別な種類のアソシエーションです。通常、コードの違いは、集合体は通常、構築時に (たとえば、コンストラクターで) パーツを取得することです。

UML Labなどで実装スタイル (いわゆる CodeStyles) を試すことができます。これにより、さまざまな Association の実装を確認できます (注: 私は UML Lab のベンダーの従業員です)。もちろん、関連付け用のコードを生成する UML ツールは他にも多数あります。

関連は非常に複雑になる可能性があるため、AmitDが示唆したように、それについての本を読んでも害はありません。

于 2012-10-20T18:11:06.743 に答える