8

集約と構成の違いは理解していますが、関連付けには少し苦労しています。私の現在の理解では、「互いに使用する」ときにクラス間に関連付けが存在するということです。たとえば、メソッド呼び出し中に1つのオブジェクトが別のオブジェクトに渡されます。以下も参照してください。

http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit

両方のオブジェクトは独立して存在し、集約とは対照的に、他のオブジェクトのコンテナ クラスになるオブジェクトはありません。これは、両方のオブジェクトが他のオブジェクトのコピーを持っている必要があることを意味しますか (たとえば、1:m 関係)、または関連付けが「保存」される方法は他にありますか。どんなフィードバックでも大歓迎です。

4

8 に答える 8

11

UML 上部構造 2.4.1 から:

関連付けは、関連付けられた型のインスタンス間にリンクが存在できることを宣言します。リンクは、関連付けの各端に対して 1 つの値を持つタプルであり、各値は端のタイプのインスタンスです。(UML上部構造、37ページ)

それ以上でもそれ以下でもありません。そして非常に曖昧です。このため、非常に理解しにくいものでもあります。私が (私が教えるコースで) 定義したのは、依存関係から構成へのリンクの階層です。

  1. Aからへの依存関係は、間接的にしか使用しないことをB意味します(たとえば、そのインスタンスを受け取り、それらを他のオブジェクトに転送することによって)。AB
  2. からAへの関連付けは、直接使用することをB意味します(たとえば、メソッドを呼び出すことによって)AB
  3. Aからへの集約は、 (意味的に)BB一部であるが共有できることを意味し、が削除された場合は削除されません。これは、「is part」がどのように実装されているかについては何も述べていないことに注意してください。ABAB
  4. コンポジション からAまでBは、B共有できず、Aが削除されると、そのすべての集計 ( B) も削除される集計のようなものです。
于 2012-10-26T07:54:01.043 に答える
3

集約は、関連付けが包含クラス「所有」と見なすことができる関連付け関係であり、その関係の存続期間は定義されていません。

アソシエーションは「Has-A」関係です。

例:-

  public class Person  
  {  
   private final Name name;  
   private Address currentAddress;  

   //...  
 } 

この場合、Person Has-AnameとHas-AAddressであるため、PersonとName、およびPersonとAddressの間には関連付けがあります。

于 2012-10-24T07:59:48.397 に答える
2

アソシエーションは、1つ以上のクラスのインスタンス間の関係を記述します。UMLリファレンスマニュアルの言葉によれば、「アソシエーションはシステムをまとめる接着剤です」。

集約は、「全体」の関係が存在する関連付けの形式です。クラス飛行機にクラスエンジンがある場合、これは「全体」の関係を形成すると言うことができます。

于 2012-10-24T07:59:17.763 に答える
1

集計

条件を設定しましょう。Aggregation は UML 標準のメタ用語であり、単純にsharedという名前の構成と共有集計の両方を意味します。多くの場合、誤って「集合体」と名付けられています。構成も集約であるため、これは悪いことです。私が理解しているように、あなたは「共有集約と構成」を理解していることを意味していました。

UML 標準から:

共有集約の正確なセマンティクスは、アプリケーション領域とモデラーによって異なります。

たとえば、その集約が想定する多重度についての言葉は見つかりませんでした。

協会。

UML 3.4.1 標準からの定義:

アソシエーションは、値が型付きインスタンスを参照するタプルのセットを記述します。関連のインスタンスはリンクと呼ばれます。リンクは、関連付けの各端に対して 1 つの値を持つタプルであり、各値は端のタイプのインスタンスです。

集約された関係は、Association のサブクラスです。

協会は関係に基づいています。IT はモデルの接着剤です。

しかし、あなたの気持ちは嘘をつきませんでした。共有された集約は厳密に定義されていないため、関連付けと集約された関連付けの間に厳密に定義された境界もありません。ツールの作成者とモデラーは、自分で設定する必要があります。

于 2014-01-22T14:00:15.010 に答える
1

協会

これは、すべてのオブジェクトが独自のライフサイクルを持ち、所有者がいない 2 つ以上のオブジェクト間の関係を表します。関連の名前は、オブジェクト間の関係の性質を指定します。これは実線で表されます。

Teacher と Student の関係の例を見てみましょう。複数の生徒を 1 人の教師と関連付けることができ、1 人の生徒を複数の教師と関連付けることができます。ただし、オブジェクト間に所有権はなく、両方に独自のライフサイクルがあります。どちらも個別に作成および削除できます。

集計

これは、すべてのオブジェクトに独自のライフサイクルがありますが、所有権がある特殊な形式の関連付けです。これは、「全体または一部」の関係を表します。これは、中空のひし形とそれに続く線で表されます。

Department と Teacher の関係の例を見てみましょう。教師は複数の部門に所属する場合があります。したがって、教師は複数の部門の一部です。しかし、部門を削除しても、教師オブジェクトは破棄されません。

于 2015-02-26T06:15:45.120 に答える