2010-09-22 65 views

回答

-2

extends關係

+0

AFAIK,擴展關係是在用例之間不是類。 – odiseh 2010-09-22 05:49:03

+0

@odiseh:你錯了。類之間有擴展的關係。 – 2010-09-22 05:53:05

+0

+1 Lie Ryan - 擴展在類之間有效。 – sfinnie 2010-09-22 10:21:23

2

一個是另一個聚合的擴展(這是一個在裝飾者小諾布)。 表示裝飾器可以包含0個或更多個組件。

HTH

馬里奧

+0

+1我錯過了右側的聚合箭頭。 – 2010-09-22 05:56:41

3

組件和裝飾之間的兩種關係構成另一個圖案 - Composite

  • 裝飾是組件的一個子類型(相對與三角形)
  • 裝飾聚集體(包括)的許多組件(相對與金剛石)

它允許創建遞歸樹結構。在裝飾器上調用的操作被委託給它所包含的元素。因此,在您的圖中,Decorator.Operation()的行爲是在其每個聚合組件上調用Component.Operation()。由於thpse中的一個或多個本身可能是裝飾器,因此對Operation()的調用會通過樹結構傳播。

+0

很好斑點! – 2010-09-22 09:37:19

0

聚集。看到差異的最簡單方法是「待定」和「有」。 對象組件「有裝飾器」。一個對象裝飾器「是一個組件」。

0

您正在描述一個聚合。 問題是這個圖應該從你的代碼中反轉,否則你應該從你的圖中得到一個代碼。只是圖形化的UML設計對我來說還不夠。

當我使用沒有代碼映射到UML的工具時,我的建模早晚會變得糟糕! 我創建了很好的圖表,但除了演示文稿外沒有人真正使用它們。我意識到這對團隊中的每個人都是浪費時間。 我已經切換到一個專業的工具,然後我的項目真的被團隊使用,而不是在故事板中使用一次圖形視圖。 令我感到驚訝的是,開發人員還糾正了我的圖表,因爲在實施階段,UML中的優點在代碼中是不可能的:-) 這就是爲什麼如果使用類圖,UML作爲獨立對我沒有任何價值。我使用開源圖形工具做了這個錯誤,但不會再這樣做!