集約と構成の違いは何ですか

目次:

Anonim

NS 主な違い 集約と構成の間は アグリゲーションは「hasa」関係を持つ2つのオブジェクト間の関連付けであり、コンポジションは所有権を説明する特別なタイプのアグリゲーションです。

オブジェクト指向プログラミング(OOP)は、ソフトウェアエンジニアリングの主要なパラダイムです。 OOPによると、オブジェクトは相互に通信します。クラスはオブジェクトを作成するための青写真であり、関連付けは2つ以上のオブジェクト間の接続です。集約と構成は、オブジェクトまたはクラス間の関係を表す2種類の関連付けです。

集約、構成、OOP、UML

アグリゲーションとは

集約は、オブジェクト間の「持つ」関係を説明する関連付けです。たとえば、教室と生徒は「持っている」関係にリンクされています。

図1:集約を使用したUML図

上記の教室と生徒のシナリオを検討する場合、生徒のオブジェクトは教室のオブジェクトに依存しません。さらに、教室を破壊しても、生徒のオブジェクトに影響を与えたり破壊したりすることはありません。したがって、教室と生徒の関係は集合体です。さらに、統一モデリング言語(UML)は、ソフトウェアシステムの開発に役立つビジュアルモデリング言語です。 UMLでは、ひし形の記号は集合体を表します。

構成とは

構成は、所有権を説明する特殊なタイプの集計です。例は次のとおりです。

図2:UML図の構成

上の図では、Schoolオブジェクトに教室オブジェクトが含まれています。学校オブジェクトには教室オブジェクトが含まれているため、これは集計ですが、特殊なタイプの集計です。学校のオブジェクトを破棄すると、教室のオブジェクトも破棄されます。したがって、それは構成であり、所有権を意味します。 UMLでは、強調表示されたひし形の記号が構成を表します。

集約と構成の違い

意味

アグリゲーションは2つのオブジェクト間の関連付けであり、「has a」関係を記述しますが、コンポジションは所有権を意味する最も具体的なタイプのアグリゲーションです。したがって、これが集約と構成の主な違いです。

機能性

集約では、所有オブジェクトを破棄しても、それを含むオブジェクトには影響しません。ただし、構成では、所有オブジェクトを破棄すると、それを含むオブジェクトに影響します。したがって、これは集約と構成のもう1つの違いです。

UML表現

また、ひし形の記号はUMLの集計を表し、強調表示されたひし形の記号はUMLの構成を表します。

結論

OOPでは、オブジェクトは相互に通信します。ここで、オブジェクト間の関係は関連付けです。集約と構成は、オブジェクトまたはクラス間の2つのタイプの関連付けです。アグリゲーションとコンポジションの違いは、アグリゲーションは「has a」関係を持つ2つのオブジェクト間の関連付けであるのに対し、コンポジションは所有権を記述する特別なタイプのアグリゲーションであるということです。

リファレンス:

1. 6 5集約と構成の使用、People Career、2015年5月22日、ここから入手できます。

集約と構成の違いは何ですか