為什么用UML
專案需要,在專案開發實作前期進行框架技術設計(條條大路通羅馬通羅馬,畫圖或者寫代碼都可以,適合就可以!),
用戶的互動我們通常用Axure(原型設計)體現,
框架和功能結構設計則用UML體現,清楚自已使用目的,是否有用仁者見仁智者見智,
A:方便業務設計交流,理清思路,統一的規范描述(代碼高層設計和交流的表述,避免不同表達!);
B:建模工具可以把設計直接轉換為代碼(基本不用,不用把精力放在“把UML用到極致“);
uml網上一搜一大堆,推薦一本書thinking in uml
把幾個關鍵點記錄下
UML類圖關系:
泛化(繼承)、實作、聚合、組合、關聯、依賴
泛化(繼承)--用于Interface和Interface之間,或者用于Class和Class之間
實作--指的是一個class類實作interface介面(可以是多個)的功能
關聯:一個類是另一個類的成員變數,可以是單向的,也可以是雙向的,
依賴:三種表現形式通過形參、通過區域變數、通過靜態變數,
關聯與依賴區別
用斧子砍樹,我和斧子之間就是一種依賴,我和同學就是一種關聯,
依賴是一種弱關聯,只要一個類用到另一個類,use了一個類,依賴是一種偶然的關系,比較陌生,
關聯是類之間的一種關系,例如夫妻這種關系是非常明顯的,比較熟悉,
聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分
聚合關系中作為成員變數的類一般使用 set 方法賦值,
泛化(Generalization)
【泛化關系】:是一種繼承關系,它指定了子類如何特化父類的所有特征和行為例如:老虎是動物的一種.
【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

實作(Realization)
【實作關系】:是一種類與介面的關系,表示類是介面所有特征和行為的實作
【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面

聚合(Aggregation)
【聚合關系】:是整體與部分的關系.如車和輪胎是整體和部分的關系.
聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分,必須考察具體的邏輯關系,
【代碼體現】:成員變數
【箭頭及指向】:帶空心菱形的實心線,菱形指向整體
組合(Composition)
【組合關系】:是整體與部分的關系.,沒有公司就不存在部門 組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的物件負責代表部分的物件的生命周期
【代碼體現】:成員變數
【箭頭及指向】:帶實心菱形的實線,菱形指向整體

關聯(Association)
【關聯關系】:是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子
關聯可以是雙向的,也可以是單向的,雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭,
【代碼體現】:成員變數
【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者

依賴(Dependency)
【依賴關系】:是一種使用的關系,所以要盡量不使用雙向的互相依賴,
【代碼表現】:區域變數、方法的引數或者對靜態方法的呼叫
【箭頭及指向】:帶箭頭的虛線,指向被使用者


強弱排序
泛化(繼承)= 實作 > 組合 > 聚合 > 關聯 > 依賴
三角形為實作和泛化,表示上下關系,其中虛線為實作
菱形為聚合和組合,表示組成從屬關系,其中空心為聚合
箭頭為關聯和依賴,表示平級關系,其中虛線為依賴
UML的基本圖
靜態圖分為:用例圖,類圖,物件圖,包圖,構件圖,部署圖,
動態圖分為:狀態圖,活動圖,協作圖,序列圖
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/19550.html
標籤:架構設計
