依賴和關聯
2003 年 9 月 17 日
依賴和關聯之間的差異是什麼?
一般來說,您會使用關聯來表示類別中的欄位之類的東西。連結總是存在,因為您總是能詢問訂單的客戶。它不必實際上是欄位,如果您從更介面的角度建模,它可以只表示會傳回訂單客戶的方法存在。
引用自 UML 精華(現已出版)第 3 版:「如果變更一個元素(供應者)的定義可能會導致變更另一個元素(客戶),則兩個元素之間存在依賴關係」。這是一個非常模糊且通用的關係,這就是 UML 有一系列不同形式依賴關係的立體型的緣故。在程式碼術語中,命名參數類型和在暫時變數中建立物件等事項暗示著依賴關係。
您不想要在 UML 圖表上顯示每個依賴關係,因為它們太多了。您需要非常有選擇性,只顯示對您要傳達的內容很重要的依賴關係。
我傾向於不常在依賴關係上使用立體型。我發現大多數時候,我想顯示的重點是依賴關係存在,而哪種類型比較不重要。
關聯也暗示著依賴關係,如果兩個類別之間有關聯,則也有依賴關係。但我無法想像您會在圖表上將該依賴關係顯示為額外線條的情況。關聯暗示著它,概括也暗示著它。
混淆的一個來源是 UML 1 中使用暫時連結。這些連結出現在 UML 1 中的元模型問題中。它們表現為關聯的立體型,例如參數。我一直不喜歡這些,因為我覺得永久插槽和僅在方法的內容中存在的關係之間的差異非常重要。因此,我寧願在依賴關係而不是關聯上使用此類立體型。在 UML 2 中,這個問題不再發生,因為元模型有不同的方式來處理方法範圍的關係,因此此類立體型在 UML 2 中不再有效。