uml 類圖依賴與關聯的區別


  最近研究設計模式,看類圖有點發虛!有些關系搞的不是很清楚。所以整理一下:

   類與類之間由弱到強關系是:    沒關系 > 依賴 > 關聯 > 聚合 > 組合。

  類和類之間八竿子打不着那就是沒關系,這個沒啥歧義。

    

 依賴(dependency)

 

  可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關系是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關系就是依賴;表現在代碼層面,為類B作為參數被類A在某個method方法中使用。用帶虛線的箭頭。

  

 

 關聯(association)

  他體現的是兩個類、或者類與接口之間語義級別的一種強依賴關系,比如我和我的朋友;這種關系比依賴更強、不存在依賴關系的偶然性、關系也不是臨時性的,一般是長期性的,而且雙方的關系一般是平等的、關聯可以是單向、雙向的;表現在代碼層面,為被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯類A引用了一個類型為被關聯類B的全局變量;

 

 依賴和關聯區別:我用錘子修了一下桌子,我和錘子之間就是一種依賴,我和我的同事就是一種關聯。依賴是一種弱關聯,只要一個類用到另一個類,但是和另一個類的關系不是太明顯的時候(可以說是“uses”了那個類),就可以把這種關系看成是依賴,依賴也可說是一種偶然的關系,而不是必然的關系。關聯是類之間的一種關系,例如老師教學生,老公和老婆這種關系是非常明顯的。依賴是比較陌生,關聯是我們已經認識熟悉了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM