2011-08-20 82 views
0

如果我有一個包含「委託」實例的類「Foo」。富委託方法調用類「代表」,例如:UML依賴關係 - 我應該在這裏使用它嗎?

public class Foo { 
    private Delegate delegate = new Delegate(); 

    public void bar() { 
     delegate.bar(); 
    } 
} 

當我在UML繪製Foo類,將它有它和委託類之間的依賴關係(帶箭頭的虛線),或將它有一條代表構成關係的線條?

回答

1

關於UML的好處是你有一些餘地,但在你的情況下,恕我直言,依賴關係更好。

你沒有delegateFoo的屬性(有沒有getDelegate),所以沒有人在看你的系統會真的在意一個Foo是由委託的(除其他事項外)。然後,如果你的UML圖被賦予了一個可以從圖中生成代碼的工具,那麼它可能會如此。 :)

做什麼感覺正確的人(或代理)你是誰給圖。

+0

我不會使用缺少吸氣劑作爲強有力的指標。我從來不喜歡UML中的依賴關係。面向對象的基本知識已經被充分地涵蓋了,所以我在做非面向對象建模時主要使用它們。但如果沒有人需要知道Foo在內部做了什麼,那麼我不會爭辯;) – ShiDoiSi

0

我會在這種情況下使用構圖關係。如果您還沒有確定Foo是否包含Delegate實例,那麼依賴關係就沒有問題。但是,如果你已經做出了這個決定,那麼隱藏附加信息並沒有什麼好處,實際上它可能是誤導性的(讀者可能會認爲它不是一個遏制因果,如果它是這樣的話) 。

+0

嗨。我已經決定Foo *將包含一個Delegate的實例。那麼,它應該作爲一個依賴嗎?謝謝 – Joeblackdev

+0

在這種情況下,我會使用組合關係。 –

相關問題