コンポジションとアグリゲーションの違いは何ですか?誰かがこのOOADのサンプルを教えてもらえますか?
4 に答える
学生、学生の脳、そして学生が通っている学校を考えてみてください。
脳は学生の一部です。学生が破壊されると、脳も破壊されます。これが作曲です。
生徒には学校があります。生徒は学校の破壊を生き延び、逆もまた同様です。これは集約です。
「集約と構成はどちらも特殊な種類の関連付けです。集約は所有権または全体/部分の関係を表すために使用され、構成はさらに強力な所有形態を表すために使用されます。構成を使用すると、部分と全体の寿命が一致します。複合オブジェクトは、作成と破棄の観点から、そのパーツの配置について単独で責任を負います。
さらに、集合体の端の多重度は1を超えてはなりません。つまり、共有されていません。オブジェクトは、一度に1つのコンポジットの一部である場合があります。コンポジットが破壊された場合、そのすべてのパーツを破壊するか、他のオブジェクトにそれらの責任を与える必要があります。複合オブジェクトは、他のオブジェクトがそのパーツを破壊しないという知識を持って設計できます。
構成を使用して、属性による意味的に同等の値による集計をモデル化できます。実際、構成は元々、以前のUMLドラフトでは値による集約と呼ばれ、「通常の」集約は参照による集約と見なされていました。定義は少し変更されていますが、一般的な考え方は引き続き適用されます。集約と構成の違いは、より設計概念であり、通常、分析には関係ありません。」John Moore
ここであなたの質問に関連する答え:http://ootips.org/uml-hasa.html
つまり、構成と集約の両方が非周期的であり、一部と全体で構成される関係です。違いは、構成では、全体がその部分を作成(および削除)する責任があるということです。