アグリゲーションとアソシエーションの違いとは?

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


AggregationとAssociationの大きな違いは、AggregationはAssociationの一種で、2つのオブジェクトの間の「has-a」関係を記述するのに対し、Associationは2つのオブジェクト間の関係を記述することである


ソフトウェアを実装する前に設計することが必要である

UML(Unified Modelling Language)は、ソフトウェアのモデリングに役立つ視覚的な図解言語です。

UMLは、システムを絵で表現することができます。

そのため、技術者でない人でもUMLを簡単に理解し、学ぶことができます。

さらに、クラス図とオブジェクト図は、UML図の2つのタイプです。

クラスとオブジェクトの間には関係があります。

これらの図には、集約と関連が含まれます。

全体として、集約は関連付けの一種です

最後に、プログラマーは、これらの概念をプログラムに変換することができます。

主な対象分野

  1. アグリゲーションとは
          -定義、機能
  2. アソシエーションとは
         -定義、機能
  3. アグリゲーションとアソシエーションの違い
         -主な違いの比較
スポンサーリンク

アグリゲーションとは

アグリゲーションとは、アソシエーションの一種である

言い換えれば、アソシエーションの特殊なケースです。

あるオブジェクトが他のオブジェクトを「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」関係を記述する関連付けの一種であることです

  簡単に言えば、アグリゲーションはアソシエーションの特殊なケースです。

タイトルとURLをコピーしました