2013-02-28 12 views
42

Rozważ poniższe dwa diagramy. Górna zawiera zwykłą strzałkę na prawym końcu, a dolna zawiera strzałkę z diamentem na lewym końcu i zwykłą strzałkę na prawym końcu. great book GoF ma zastosowania obu tych dwóch rodzajów diagramów.Co oznacza znak diamentu w diagramach klas UML?

Chcę zrozumieć, co robi diament oznaczać w drugim przypadku, a która z tych dwóch daje silniejszy związek między Customer i Order.

Czy klasa Customer odpowiada za cykl życia klasy Order w jednym z dwóch przypadków?

enter image description here enter image description here

Odpowiedz

62

Jeśli nie ma diament, wtedy mamy proste skojarzenie.

Jeśli diament pozostanie pusty, oznacza to, że jest to agregacja. Ta relacja jest silniejsza niż proste powiązanie. W takim przypadku klient agreguje zamówienia.

Jeśli diament jest czarny, oznacza to, że jest to kompozycja, która jest nawet silniejsza niż agregacja, ponieważ zagregowanej klasy nie można zagregować w innych klasach. Jego "życie" zależy od pojemnika.

Myślę, że to wyjaśnia trochę jaśniej, pod adresem:

+2

+1 i ładny link –

5

To oznacza agregację. Z Wikipedii:

UML, jest graficznie przedstawiony jako wydrążonej kształcie rombu na zawierającej klasy końcu drzewa z jednej linii, która łączy zawartej klasę do zawierającym class.The kruszywa jest semantycznie obiekt rozszerzony, który jest traktowany jako jednostka w wielu operacjach, chociaż fizycznie składa się z kilku mniejszych obiektów.

http://en.wikipedia.org/wiki/Class_diagram

8

Klient i porządek to „ma -a "związek kompozycji, ponieważ jeśli klient przestaje istnieć, robi to samo. Dlatego istnieje zależność cyklu życia między kontenerem (klientem) a instancjami wewnątrz tego kontenera (zamówienie). Kiedy pojemnik przestaje istnieć, tak samo dzieje się z wszystkimi jego instancjami.

Z drugiej strony, jeśli powiemy, że klient ma książkę. W tym przypadku mamy relację agregacji "ma-a". Ponieważ jeśli klient przestanie istnieć, książka będzie nadal dostępna.

Powiązane problemy