為什麼用UML
項目需要,在項目開發實作前期進行架構技術設計(條條大路通羅馬通羅馬,畫圖或者寫代碼都可以,适合就可以!)。
使用者的互動我們通常用Axure(原型設計)展現,
架構和功能結構設計則用UML展現,清楚自已使用目的,是否有用仁者見仁智者見智。
A:友善業務設計交流,理清思路,統一的規範描述(代碼高層設計和交流的表述,避免不同表達!);
B:模組化工具可以把設計直接轉換為代碼(基本不用,不用把精力放在“把UML用到極緻“);
uml網上一搜一大堆,推薦一本書thinking in uml
把幾個關鍵點記錄下
UML類圖關系:
泛化(繼承)、實作、聚合、組合、關聯、依賴
泛化(繼承)--用于Interface和Interface之間,或者用于Class和Class之間
實作--指的是一個class類實作interface接口(可以是多個)的功能
關聯:一個類是另一個類的成員變量,可以是單向的,也可以是雙向的。
依賴:三種表現形式通過形參、通過局部變量、通過靜态變量。
關聯與依賴差別
用斧子砍樹,我和斧子之間就是一種依賴,我和同學就是一種關聯。
依賴是一種弱關聯,隻要一個類用到另一個類,use了一個類,依賴是一種偶然的關系,比較陌生。
關聯是類之間的一種關系,例如夫妻這種關系是非常明顯的,比較熟悉。
聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在文法上無法區分
聚合關系中作為成員變量的類一般使用 set 方法指派。
泛化(Generalization)
【泛化關系】:是一種繼承關系,它指定了子類如何特化父類的所有特征和行為例如:老虎是動物的一種.
【箭頭指向】:帶三角箭頭的實線,箭頭指向父類
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5COwgzMzUTO4MTL1YzNwITM0EjM5IjMwAjMwITL2gDM2ITOx8CXyADMyAjMvwlN4AjNykTMvwVY0VmYtk2Lc12bj5ycn9Gbi52YugTMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
實作(Realization)
【實作關系】:是一種類與接口的關系,表示類是接口所有特征和行為的實作
【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口
聚合(Aggregation)
【聚合關系】:是整體與部分的關系.如車和輪胎是整體和部分的關系.
聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在文法上無法區分,必須考察具體的邏輯關系。
【代碼展現】:成員變量
【箭頭及指向】:帶空心菱形的實心線,菱形指向整體
組合(Composition)
【組合關系】:是整體與部分的關系.,沒有公司就不存在部門 組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期
【箭頭及指向】:帶實心菱形的實線,菱形指向整體
關聯(Association)
【關聯關系】:是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子
關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者
依賴(Dependency)
【依賴關系】:是一種使用的關系,是以要盡量不使用雙向的互相依賴。
【代碼表現】:局部變量、方法的參數或者對靜态方法的調用
【箭頭及指向】:帶箭頭的虛線,指向被使用者
強弱排序
泛化(繼承)= 實作 > 組合 > 聚合 > 關聯 > 依賴
三角形為實作和泛化,表示上下關系,其中虛線為實作
菱形為聚合群組合,表示組成從屬關系,其中空心為聚合
箭頭為關聯和依賴,表示平級關系,其中虛線為依賴
UML的基本圖
靜态圖分為:用例圖,類圖,對象圖,包圖,構件圖,部署圖。
動态圖分為:狀态圖,活動圖,協作圖,序列圖
以下參考位址https://www.cnblogs.com/nick-huang/p/5804630.html
https://blog.csdn.net/l_nan/article/details/37036787
出處:轉載請注明 https://www.cnblogs.com/sun-null/