前言
UML類圖形象反映系統類之間的關系,大家非常常用。小弟不才,偶爾使用,往往每次使用都得查詢各種關系的表示方式。終於,這次認真看了幾遍,打算記起來。
注意
記憶方法只是本人聯想,用於加強記憶。與該表示方式的來源沒有半點關系。
元素
類和接口
- +表示public,-表示private。正代表公開,負代表私密,很正常。
類之間的各種關系
泛化、實現
- 泛化(可以看成繼承)和實現都用
三角形
來表示。 實現
,由“無實現”到“有實現”。沒東西是不是比較虛啊,所以用的是虛線
。泛化
,原來就有實現,只不過在此基礎上擴展。本身就很強,用實線
。- 在Java中的表現,泛化,就是繼承;實現,就是實現嘛,被實現的可以是接口,或抽象類。
聚合、組合
- 聚合、組合都是用
菱形
表示。他們都是多個對象聚集而成,所以體積比較大,你看菱形是不是比三角形、箭頭要大一點。 - 兩者都是用實線。
- 聚合,是聚集起來合成在一起的。比如人員聚集起來合成一個團隊,如果團隊解散了,但人員還存在。是
弱依賴
關系,所以用空心的菱形
。 - 組合,是(結構)組成合成在一起的。比如商品條目、配送地址信息、付款信息組成訂單,如果訂單消失了,付款信息也消失了(生存周期一致)。是強依賴關系,所以用
實心的菱形
。
關聯、依賴
- 關聯、依賴都是由
箭頭
表示(除了箭頭,也想不到其他更合適的了)。 - 關聯,是靜態的、非運行時的關系(什么是非運行時的關系?用Java代碼來說,A關聯B,那么B是A的一個
屬性
,頓時領悟了吧)。那么穩定的關系,當然用實線
了。 - 依賴,是臨時的、運行時的關系(用Java代碼來說,就是
參數
嘛),臨時的關系,用虛線
表示也合理。
參考的資料
- 《看懂UML類圖和時序圖》,http://www.cnblogs.com/me115/p/4092632.html
- 《解析UML類圖符號意義》,http://blog.csdn.net/l_nan/article/details/37036787
- 《淺談UML類圖符號記憶》https://www.pianshen.com/article/30391154092/
轉自:https://www.cnblogs.com/nick-huang/p/5804630.html