DoFactoryデザインパターンの理解UML - デコレータ
-
21-09-2019 - |
質問
私は下のリンクでDecoratorパターンを記述したUMLダイアグラムを理解しようとしています。
http://www.dofactory.com/Patterns/PatternDecorator.aspxする
デコとコンポーネント間の「集約」関係がある理由を私は理解していません。
私は、デコレータは、ベース構成要素なしでは存在できないように、それは、組成物であるべきと考えています。
解決
組成物は、凝集その強い、それは通常、オブジェクトは、その構成要素の所有権を取ることを意味します。デコレータは、装飾されたオブジェクトを所有していないので、これは、このような状況ではそうではありません。また、あなたは同様に装飾されたオブジェクトを削除することなく、デコレータを削除することができます。
実際には集約と組成物との間のラインがぼやけすることができ、多くの場合、それはあなたがスケッチとして式図扱う場合は特に、あなたはどちらか一方を選択するかどうかは大きな違いがありません。
他のヒント
基本的にあなたがコンポーネント上に複数のデコレータを持つことができますので。ウィキペディアから集約するでます:
組成の違いと 集計
は組成物全体を持っている必要があります 0..1または1の多重度は、指示します 一部には、一つだけのためでなければならないこと 全体。凝集月の全体 任意の多重度を持っています。
も
作曲は通常、強い生命を持っています のインスタンス間の循環依存性 のコンテナクラスとインスタンス 含まれるクラス(ES):もし コンテナは、通常、すべて、破壊されます それが含まれているインスタンスが破棄されます 同様ます。
'普通という言葉の使用を注意します。
の明確例えば例デコレータ図に、また、ウィキペディアで見てみましょうなぜこれが事実である。