2017-03-14 32 views
6

Powiedzmy mam następującą zależność:Czy ta relacja jest agregacją, kompozycją lub czymś innym?

class A { 
public: 
    A(B& _objB); 
    B& objB; 
}; 

A::A(B& _objB) 
: objB(_objB) {} 

To nie wydaje się pasować do mojego rozumienia definicji UML agregacji lub kompozycji. Czuje się jak kompozycja, ale w kompozycji czas życia posiadanego obiektu powinien być związany z obiektem nadrzędnym. W tym przypadku objB istnieje przed utworzeniem A i po zniszczeniu A. A nie może żyć bez B, ale B może żyć bez A. Jest to odwrotność standardowej relacji kompozycji. Czy to sprawia, że ​​jest to agregat czy coś innego?

Odpowiedz

0

Już odpowiedział here , odpowiedź jest agregacja. nie posiadające użycia B.