集約もコンポジションもUMLのクラス図で使われる言葉で、両方ともHAS-Aの関係を表します。記号で書くと
- ◆-がコンポジション
- ◇-が集約
さて、本題です。
- 集約はClassA型の変数が消滅してもClassB型のメンバー変数は消滅しない
- コンポジションはClassA型の変数が消滅したらClassB型のメンバー変数も消滅する
class ClassA { // field ClassB b; };これはコンポジションです。
class ClassA { // field ClassB* b; // destructor ~ClassA() { delete b; } };これもコンポジションです。
class ClassA { // field ClassB* b; // destructor ~ClassA() { // do nothing... } };これは集約です。
0 件のコメント:
コメントを投稿