アグリゲーションとアソシエーションの違いは何ですか

目次:

Anonim

NS 主な違い アグリゲーションとアソシエーションの間は 集約は、2つのオブジェクト間の「has-a」関係を表す一種の関連付けであり、関連付けは2つのオブジェクト間の関係です。

ソフトウェアを実装する前に設計する必要があります。統一モデリング言語(UML)は、ソフトウェアのモデリングに役立つ視覚的なダイアグラム言語です。それはシステムの絵の表現を与えます。したがって、技術者でなくても、UMLを簡単に理解して学ぶことができます。さらに、クラス図とオブジェクト図は2種類のUML図です。クラスとオブジェクトの間には関係があります。これらの図には、集計と関連付けが含まれています。全体として、集約は一種の関連付けです。最後に、プログラマーはこれらの概念をプログラムに変換できます。

対象となる主要分野

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

重要な用語

集約、関連付け、UML

アグリゲーションとは

集約は一種の関連です。言い換えれば、それは関連の特別な場合です。オブジェクトが別のオブジェクトを「持っている」場合、それを集合体と見なすことができます。したがって、集約は、オブジェクト間の「has-a」関係を説明します。 UMLでは、ひし形の記号が集合を表します。方向は、どのオブジェクトに他のオブジェクトが含まれているかを示します。

図1:集約と関連付けのUML表記

たとえば、employeeはタイプEmployeeクラスのオブジェクトです。アドレスと呼ばれるプロパティがあります。アドレスは、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つのオブジェクト間の関連付けであり、関連付けは2つのオブジェクト間の関係です。

UML表現

ひし形の記号は集合体を表し、矢印は関連を表します。

依存

アグリゲーションはアソシエーションの一種ですが、アソシエーションはアグリゲーションに依存しません。

結論

集約と関連付けは、UMLの2つの概念です。システムを設計した後、プログラマーはプログラミング言語を使用してこの概念を実装できます。アグリゲーションとアソシエーションの主な違いは、アグリゲーションは2つのオブジェクト間の「has-a」関係を表すタイプのアソシエーションであるのに対し、アソシエーションは2つのオブジェクト間の関係であるということです。簡単に言うと、集約は関連付けの特殊なケースです。

参照:

1.「関連付け、集約、構成、抽象化、一般化、実現、依存関係」。 Javapapers、ここから入手できます。

アグリゲーションとアソシエーションの違いは何ですか