1

私はそれがどれであるかについて少し混乱しています。

あなたはそれがポインタを介してオブジェクトを「使用する」と言うことができます-したがって関連付け。しかし、それは集約のようにも聞こえます-'には'オブジェクトがありますが、このオブジェクトが死んだとき、それは参照されたオブジェクトが死ぬことを意味しません。

UMLで最も意味のあるものはどれですか?

4

2 に答える 2

1

関連、集約、およびイベント構成を示すことができます。3 つの違いはセマンティックであり、静的または実装固有ではありません。

  1. 指摘されたクラスが所有クラス (ハッシュマップのエントリ クラスのように、それなしでは存在できない全体の一部) とのライフサイクル依存関係を持っている場合、それは合成です。
  2. 指摘されたクラスが所有クラスの一部である場合 (セマンティックな関係、つまり、アプリケーション内のコントローラー間で共有されるデータベース接続)、それは集約です。
  3. ポインター クラスが別の目的 (キャッシュ、計算の中間値など) に使用される場合、それはおそらく単純な関連付けです。

しかし、UML はさまざまな解釈のために多くのスペースを残しているため、ここで「正しい」答えが得られることはありません。

于 2013-03-08T12:50:32.810 に答える
0

まず、「集約関係」は、実際には、一方の端に「なし」以外の集約の種類がある (バイナリ) アソシエーションです。その場合、集約は洗練されたセマンティクスとの関連付けにすぎません。

集計は、複合(完全なひし形) または共有(中空のひし形) にすることができます。複合集約とは、「複合オブジェクトは、構成されたオブジェクトの存在と保管に責任を負う」ことを意味します(その後、複合オブジェクトが削除されると、参照先のオブジェクトは消滅しますが、複合オブジェクトが削除される前に一部が削除される場合があります)。

一方、共有集約は、集約されたオブジェクトのライフサイクルを結び付けません (UML 仕様では、「共有集約の正確なセマンティクスはアプリケーション領域とモデラーによって異なります」、「集約の正確なライフサイクル セマンティクスはセマンティック バリエーション ポイントです。」)。それらは、装飾のない連想と複合的な連想の中間にあるものです。

于 2013-03-08T03:41:34.907 に答える