一抑胎、基本概念
- UML:統(tǒng)一建模語言(英語:Unified Modeling Language,縮寫 UML)是非專利的第三代建模和規(guī)約語言贰剥。UML可以干很多事抄伍,畫各種各樣的邏輯圖,這里只關(guān)心它在類圖中的使用张肾。
- 類圖的主要作用是理清類和類之間的關(guān)系芭析,是面向?qū)ο笙到y(tǒng)建模中最常用和最重要的圖。
-
類圖有三個(gè)組件:類名吞瞪、屬性馁启、方法。如下圖
-
泛化(generalization):表示is-a的關(guān)系芍秆,是對(duì)象之間耦合度最大的一種關(guān)系惯疙,子類繼承父類的所有細(xì)節(jié)。直接使用語言中的繼承表達(dá)妖啥。在類圖中使用帶三角箭頭的實(shí)線表示霉颠,箭頭從子類指向父類。
-
實(shí)現(xiàn)(Realization):在類圖中就是接口和實(shí)現(xiàn)的關(guān)系荆虱。這個(gè)沒什么好講的蒿偎。在類圖中使用帶三角箭頭的虛線表示,箭頭從實(shí)現(xiàn)類指向接口克伊。
-
依賴(Dependency):對(duì)象之間最弱的一種關(guān)聯(lián)方式酥郭,是臨時(shí)性的關(guān)聯(lián)。代碼中一般指由局部變量愿吹、函數(shù)參數(shù)、返回值建立的對(duì)于其他對(duì)象的調(diào)用關(guān)系惜姐。一個(gè)類調(diào)用被依賴類中的某些方法而得以完成這個(gè)類的一些職責(zé)犁跪。在類圖使用帶箭頭的虛線表示,箭頭從使用類指向被依賴的類歹袁。
-
關(guān)聯(lián)(Association) : 對(duì)象之間一種引用關(guān)系坷衍,比如客戶類與訂單類之間的關(guān)系。這種關(guān)系通常使用類的屬性表達(dá)条舔。關(guān)聯(lián)又分為一般關(guān)聯(lián)枫耳、聚合關(guān)聯(lián)與組合關(guān)聯(lián)。后兩種在后面分析孟抗。在類圖使用帶箭頭的實(shí)線表示迁杨,箭頭從使用類指向被關(guān)聯(lián)的類钻心。可以是單向和雙向铅协。
-
聚合(Aggregation) : 表示has-a的關(guān)系捷沸,是一種不穩(wěn)定的包含關(guān)系。較強(qiáng)于一般關(guān)聯(lián),有整體與局部的關(guān)系,并且沒有了整體,局部也可單獨(dú)存在狐史。如公司和員工的關(guān)系痒给,公司包含員工,但如果公司倒閉骏全,員工依然可以換公司苍柏。在類圖使用空心的菱形表示,菱形從局部指向整體姜贡。
-
組合(Composition) : 表示contains-a的關(guān)系试吁,是一種強(qiáng)烈的包含關(guān)系。組合類負(fù)責(zé)被組合類的生命周期鲁豪。是一種更強(qiáng)的聚合關(guān)系潘悼。部分不能脫離整體存在。如公司和部門的關(guān)系爬橡,沒有了公司治唤,部門也不能存在了;調(diào)查問卷中問題和選項(xiàng)的關(guān)系糙申;訂單和訂單選項(xiàng)的關(guān)系宾添。在類圖使用實(shí)心的菱形表示,菱形從局部指向整體柜裸。
-
多重性(Multiplicity) : 通常在關(guān)聯(lián)缕陕、聚合、組合中使用疙挺。就是代表有多少個(gè)關(guān)聯(lián)對(duì)象存在扛邑。使用數(shù)字..星號(hào)(數(shù)字)表示。如下圖铐然,一個(gè)割接通知可以關(guān)聯(lián)0個(gè)到N個(gè)故障單蔬崩。
-
下面來一張類圖,大家自己體會(huì)一下上面的概念已經(jīng)邏輯關(guān)系:
二搀暑、繪制UML類圖
畫UML圖的工具大致可以分為兩類沥阳,一類是專業(yè)的繪圖工具,帶了畫UML的功能自点,如Visio桐罕、Dia;另一類是專門用來制作UML圖的,如ArgoUML和Rose功炮,通常都有根據(jù)UML圖直接生成代碼溅潜。
這里介紹一下在Android Studio中安裝UML插件,根據(jù)代碼自動(dòng)生成UML類圖死宣。
第一種是Code Iris伟恶。這個(gè)可以直接根據(jù)你的項(xiàng)目生成UML類圖。
- 在file --> settings --> plugins中搜索Code Iris毅该,搜索結(jié)果中安裝插件博秫,重啟AS。
-
在需要生成UML類圖的項(xiàng)目的包名或類名上右鍵選擇Create CodeIris Graph眶掌。這時(shí)候電腦會(huì)明顯卡頓一下挡育。
-
生成后,在編輯器的右側(cè)朴爬,會(huì)有CodeIris的標(biāo)簽即寒,點(diǎn)開就可以了。
-
在打開的UML類圖窗口中召噩,可以切換不同的視圖:module母赵、view、class具滴。鼠標(biāo)移動(dòng)到某一個(gè)類的時(shí)候凹嘲,就會(huì)顯示出這個(gè)類所有相關(guān)的連接線。
第二種是使用PlantUML构韵。這是需要你去編寫代碼來生成UML圖周蹭。
- 在file --> settings --> plugins中搜索PlantUML,搜索結(jié)果中安裝PlantUML插件疲恢,重啟AS凶朗;
- 安裝Graphviz。去Graphviz官網(wǎng)下載显拳,然后安裝棚愤。注意這里有兩個(gè)下載選項(xiàng),第一個(gè).msi文件就是需要你自己去安裝杂数;另一個(gè)壓縮文件是綠色版遇八,直接解壓就可以用。
-
打開AS的File->Settings->Other Settings ->PlantUML耍休。將將文件路徑填寫為剛剛Graphviz的目錄下bin目錄中dot.exe文件。
- 到此货矮,安裝工作就結(jié)束了羊精。
使用方法,首先要學(xué)習(xí)一下生成UML的代碼,這里提供一個(gè)鏈接喧锦,大家可以去學(xué)習(xí)一下就可以輕松生成UML類圖了读规。PlantUML快速指南