AggregationとAssociationの大きな違いは、AggregationはAssociationの一種で、2つのオブジェクトの間の「has-a」関係を記述するのに対し、Associationは2つのオブジェクト間の関係を記述することである。
ソフトウェアを実装する前に設計することが必要である。
UML(Unified Modelling Language)は、ソフトウェアのモデリングに役立つ視覚的な図解言語です。
UMLは、システムを絵で表現することができます。
そのため、技術者でない人でもUMLを簡単に理解し、学ぶことができます。
さらに、クラス図とオブジェクト図は、UML図の2つのタイプです。
クラスとオブジェクトの間には関係があります。
これらの図には、集約と関連が含まれます。
全体として、集約は関連付けの一種です。
最後に、プログラマーは、これらの概念をプログラムに変換することができます。
主な対象分野
- アグリゲーションとは
-定義、機能 - アソシエーションとは
-定義、機能 - アグリゲーションとアソシエーションの違い
-主な違いの比較
アグリゲーションとは
アグリゲーションとは、アソシエーションの一種である。
言い換えれば、アソシエーションの特殊なケースです。
あるオブジェクトが他のオブジェクトを「has-a」するとき、それを集約と考えることができる。
このように、集約はオブジェクト間の “has-a “関係を説明する。
UMLでは、菱形のシンボルが集約を表す。
方向は、どのオブジェクトが他のオブジェクトを含むかを記述する。
図1:UMLの集約と関連付けの表記法
例えば、社員はEmployeeクラスのオブジェクトです。
このオブジェクトは、addressというプロパティを持っています。
このアドレスはAddressという別のクラスに属しています。
したがって、従業員と住所は “has-a “の関係で結ばれている。
したがって、これはアグリゲーションです。
アソシエーションとは
アソシエーションとは、2つのオブジェクト間の関係です。
オブジェクト間の多重性を定義することができる。
これは、オブジェクトが1対1、1対多、または多対多の関連性を持っているかを表します。
例えば、AとBという2つのクラスがあるとする。
Aの1つのオブジェクトがBの1つのオブジェクトに関係する場合、それは1対1のアソシエーションです。
しかし、Aの1つのオブジェクトがBの複数のオブジェクトに関係する場合、その関係は1対多となる。
同様に、Aの複数のオブジェクトがBの複数のオブジェクトと関連している場合、その関係は多対多となる。
したがって、これらの関係はオブジェクト間の関連を定義する。
例えば、顧客と商品という2つのオブジェクトがあるとする。
顧客は商品を購入するが、両者は単純な関係であり、これは関連です。
さらに、UMLでは、矢印が関連を表す。
集約と関連付けの違い
定義
アグリゲーションは、2つのオブジェクト間の関係で、「has a」の関係を記述するものであり、アソシエーションは2つのオブジェクト間の関係です。
UML表現
菱形の記号は集約を、矢印は関連を表す。
依存性
アグリゲーションはアソシエーションの一種であるが、アソシエーションはアグリゲーションに依存しない。
結論
集計と関連はUMLにおける2つの概念です。
システムを設計した後、プログラマーはこの概念をプログラミング言語を使って実装することができる。
アグリゲーションとアソシエーションの主な違いは、アグリゲーションは2つのオブジェクトの間の「has-a」関係を記述する関連付けの一種であることです。
簡単に言えば、アグリゲーションはアソシエーションの特殊なケースです。