在這個beginners guide to Dependency Injection我注意到the UML diagram區分「用途」和「依賴」。「用途」和「依賴」之間有什麼區別?
由於兩者都需要某種形式的「使用」或「依賴於」類的引用,所以我想知道:這兩者之間究竟有什麼區別?
在這個beginners guide to Dependency Injection我注意到the UML diagram區分「用途」和「依賴」。「用途」和「依賴」之間有什麼區別?
由於兩者都需要某種形式的「使用」或「依賴於」類的引用,所以我想知道:這兩者之間究竟有什麼區別?
查看關於從IBM Rational Software Architect documentation取得的關係類型的描述。
「取決於」是指以下:
的依賴關係表明 改變到一個模型元素( 供應商或獨立的模型元素) 可以導致另一個模型 元件的變化(客戶端或依賴型號 元件)。供應商模型元素 是獨立的,因爲 客戶端中的更改不會影響它。客戶端 模型元素取決於供應商 ,因爲對供應商 的更改會影響客戶端。
「使用」指的是下述:
的使用關係是一個依賴 關係,其中一個模型 元件需要的 存在另一個模型元素(或一組模型的 元素)爲其全部實施 或操作。 要求存在另一個模型 元素的模型元素是客戶端,並且需要其存在的模型 是供應商的 。儘管關係表示正在進行的要求,但它也表示兩個模型 元素之間的連接並不總是有意義的,或者 存在。
當我看到它的「用法」是一個不太嚴格的「依賴」。
「使用」是指其中一個類爲某些操作引用另一個類。
「取決於」是A類在其實現中使用另一個B類(例如作爲方法的參數)的地方。在這種情況下,更改B類可能需要更改爲A類。
注意我已經說過類,但它同樣適用於接口。
維基百科有一個很好的文章:http://en.wikipedia.org/wiki/Dependency_%28UML%29
因此,例如,你可以有一個使用一個類驅動程序和接口IVehicle它公開了一個名爲驅動器()方法之間的關係。對Drive實施的更改不需要對Driver進行任何更改,因此您說Driver使用IVehicle。
但是類驅動程序對類手有依賴性,因爲驅動程序有兩個屬性:Hand LeftHand和Hand RightHand。如果實施這些更改,則需要考慮Driver是否需要相應更新。
「當我閱讀它時,」使用「是一個不太嚴格的」依賴性「。」不 - 他們完全不同。 – BonyT
@BonyT,你能給你理解嗎? –
如果你使用另一個對象 - 它的內部變化是你不感興趣的。但如果你「依賴」另一個對象,那麼他們就是這樣做的。這就是兩個術語的定義。 – BonyT