uml 类图整理
1.五分鐘讀懂UML類圖
http://www.cnblogs.com/shindo/p/5579191.html
2.UML類關系(依賴,關聯,聚合,組合的區別)
https://www.jianshu.com/p/eefa0b5b4922
2.1 關聯
1、關聯關系
關聯關系又可進一步分為單向關聯、雙向關聯和自關聯。
(1)單向關聯
我們可以看到,在UML類圖中單向關聯用一個帶箭頭的直線表示。上圖表示每個顧客都有一個地址,這通過讓Customer類持有一個類型為Address的成員變量類實現。
?
(2)雙向關聯
從上圖中我們很容易看出,所謂的雙向關聯就是雙方各自持有對方類型的成員變量。在UML類圖中,雙向關聯用一個不帶箭頭的直線表示。上圖中在Customer類中維護一個Product[]數組,表示一個顧客購買了那些產品;在Product類中維護一個Customer類型的成員變量表示這個產品被哪個顧客所購買。
?
(3)自關聯
自關聯在UML類圖中用一個帶有箭頭且指向自身的直線表示。上圖的意思就是Node類包含類型為Node的成員變量,也就是“自己包含自己”。
?
2.2依賴--dependency
用帶折線的箭頭表示
- 依賴其實定義非常模糊,所以使用依賴只應該是在其他關系無法表示的時候:
- 依賴通常體現為調用一個其他所依賴類的方法
- 在代碼中往往體現為依賴類作為函數參數或者局部臨時變量
舉例:人依賴車?
2.3聚和--aggregation
UML中聚合關系用帶空心菱形和箭頭的直線表示。聚合關系強調是“整體”包含“部分”,但是“部分”可以脫離“整體”而單獨存在
2.4組合--composition
組合關系與聚合關系見得最大不同在于:這里的“部分”脫離了“整體”便不復存在。比如下圖:
顯然,嘴是頭的一部分且不能脫離了頭而單獨存在。在UML類圖中,組合關系用一個帶實心菱形和箭頭的直線表示。
總結:聚合和組合都屬于包含的范疇,現實生活中的關系;比如 汽車包含引擎,頭包含嘴;
- ?不同的是聚合,兩個類/對象(現實中的事物)是彼此可以獨立存在的;For Example: 汽車和引擎可以彼此獨立存在的因此是聚合關系。
- 組合是c中兩個事物不能獨立;For Example :頭和嘴是彼此不能獨立存在的
? ? 依賴和關聯區別:
- ? 依賴:代碼中通常體現為調用其他類作為參數或者局部變量
- ? 關聯:關聯類通常作為一個類的成員變量存在
? ? ? ? ? ?
?
?
總結
- 上一篇: 二分查找法的循环与递归实现及时间复杂度分
- 下一篇: T(n) = 25T(n/5)+n^2的