UML類圖使用

一抑胎、基本概念

  1. UML:統(tǒng)一建模語言(英語:Unified Modeling Language,縮寫 UML)是非專利的第三代建模和規(guī)約語言贰剥。UML可以干很多事抄伍,畫各種各樣的邏輯圖,這里只關(guān)心它在類圖中的使用张肾。
  2. 類圖的主要作用是理清類和類之間的關(guān)系芭析,是面向?qū)ο笙到y(tǒng)建模中最常用和最重要的圖。
  3. 類圖有三個(gè)組件:類名吞瞪、屬性馁启、方法。如下圖
    類圖
  4. 泛化(generalization):表示is-a的關(guān)系芍秆,是對(duì)象之間耦合度最大的一種關(guān)系惯疙,子類繼承父類的所有細(xì)節(jié)。直接使用語言中的繼承表達(dá)妖啥。在類圖中使用帶三角箭頭的實(shí)線表示霉颠,箭頭從子類指向父類。
    泛化
  5. 實(shí)現(xiàn)(Realization):在類圖中就是接口和實(shí)現(xiàn)的關(guān)系荆虱。這個(gè)沒什么好講的蒿偎。在類圖中使用帶三角箭頭的虛線表示,箭頭從實(shí)現(xiàn)類指向接口克伊。
    實(shí)現(xiàn)
  6. 依賴(Dependency):對(duì)象之間最弱的一種關(guān)聯(lián)方式酥郭,是臨時(shí)性的關(guān)聯(lián)。代碼中一般指由局部變量愿吹、函數(shù)參數(shù)、返回值建立的對(duì)于其他對(duì)象的調(diào)用關(guān)系惜姐。一個(gè)類調(diào)用被依賴類中的某些方法而得以完成這個(gè)類的一些職責(zé)犁跪。在類圖使用帶箭頭的虛線表示,箭頭從使用類指向被依賴的類歹袁。
    依賴
    依賴
  7. 關(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)的類钻心。可以是單向和雙向铅协。


    關(guān)聯(lián)
  8. 聚合(Aggregation) : 表示has-a的關(guān)系捷沸,是一種不穩(wěn)定的包含關(guān)系。較強(qiáng)于一般關(guān)聯(lián),有整體與局部的關(guān)系,并且沒有了整體,局部也可單獨(dú)存在狐史。如公司和員工的關(guān)系痒给,公司包含員工,但如果公司倒閉骏全,員工依然可以換公司苍柏。在類圖使用空心的菱形表示,菱形從局部指向整體姜贡。
    聚合
    聚合
  9. 組合(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í)心的菱形表示,菱形從局部指向整體柜裸。
    組合
  10. 多重性(Multiplicity) : 通常在關(guān)聯(lián)缕陕、聚合、組合中使用疙挺。就是代表有多少個(gè)關(guān)聯(lián)對(duì)象存在扛邑。使用數(shù)字..星號(hào)(數(shù)字)表示。如下圖铐然,一個(gè)割接通知可以關(guān)聯(lián)0個(gè)到N個(gè)故障單蔬崩。
    多重性
  11. 下面來一張類圖,大家自己體會(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類圖。

  1. 在file --> settings --> plugins中搜索Code Iris毅该,搜索結(jié)果中安裝插件博秫,重啟AS。
  2. 在需要生成UML類圖的項(xiàng)目的包名或類名上右鍵選擇Create CodeIris Graph眶掌。這時(shí)候電腦會(huì)明顯卡頓一下挡育。


  3. 生成后,在編輯器的右側(cè)朴爬,會(huì)有CodeIris的標(biāo)簽即寒,點(diǎn)開就可以了。


  4. 在打開的UML類圖窗口中召噩,可以切換不同的視圖:module母赵、view、class具滴。鼠標(biāo)移動(dòng)到某一個(gè)類的時(shí)候凹嘲,就會(huì)顯示出這個(gè)類所有相關(guān)的連接線。


第二種是使用PlantUML构韵。這是需要你去編寫代碼來生成UML圖周蹭。

  1. 在file --> settings --> plugins中搜索PlantUML,搜索結(jié)果中安裝PlantUML插件疲恢,重啟AS凶朗;
  2. 安裝Graphviz。去Graphviz官網(wǎng)下載显拳,然后安裝棚愤。注意這里有兩個(gè)下載選項(xiàng),第一個(gè).msi文件就是需要你自己去安裝杂数;另一個(gè)壓縮文件是綠色版遇八,直接解壓就可以用。
    下載Graphviz
  3. 打開AS的File->Settings->Other Settings ->PlantUML耍休。將將文件路徑填寫為剛剛Graphviz的目錄下bin目錄中dot.exe文件。


    配置Graphviz
  4. 到此货矮,安裝工作就結(jié)束了羊精。
    使用方法,首先要學(xué)習(xí)一下生成UML的代碼,這里提供一個(gè)鏈接喧锦,大家可以去學(xué)習(xí)一下就可以輕松生成UML類圖了读规。PlantUML快速指南

參考文章:
UML類圖與類的關(guān)系詳解
AndroidStudio中使用plantUML

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市燃少,隨后出現(xiàn)的幾起案子束亏,更是在濱河造成了極大的恐慌,老刑警劉巖阵具,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碍遍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阳液,警方通過查閱死者的電腦和手機(jī)怕敬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘皿,“玉大人东跪,你說我怎么就攤上這事∮チ铮” “怎么了虽填?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曹动。 經(jīng)常有香客問我斋日,道長,這世上最難降的妖魔是什么仁期? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任桑驱,我火速辦了婚禮,結(jié)果婚禮上跛蛋,老公的妹妹穿的比我還像新娘熬的。我一直安慰自己,他們只是感情好赊级,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布押框。 她就那樣靜靜地躺著,像睡著了一般理逊。 火紅的嫁衣襯著肌膚如雪橡伞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天晋被,我揣著相機(jī)與錄音兑徘,去河邊找鬼。 笑死羡洛,一個(gè)胖子當(dāng)著我的面吹牛挂脑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼崭闲,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼肋联!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刁俭,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤橄仍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后牍戚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侮繁,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年翘魄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼎天。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暑竟,死狀恐怖斋射,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情但荤,我是刑警寧澤罗岖,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站腹躁,受9級(jí)特大地震影響桑包,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纺非,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一哑了、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烧颖,春花似錦弱左、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涂圆,卻和暖如春们镜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背润歉。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工模狭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人踩衩。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓胞皱,卻偏偏與公主長得像邪意,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子反砌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一萌朱。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,241評(píng)論 0 14
  • 忘記了uml類圖連線之間的關(guān)系宴树,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,834評(píng)論 0 2
  • 1. 泛化(Generalization) 泛化(Generalization)關(guān)系也就是繼承關(guān)系,用于描述父類與...
    LeeLeCoder閱讀 785評(píng)論 0 1
  • 不知不覺7月份第三周的作業(yè)雨已經(jīng)結(jié)束了翠霍,小伙伴們?cè)絹碓絻?yōu)秀了锭吨,寫作水平也有了很大的提高。這次第一交作業(yè)的是李鑫鑫寒匙,...
    a727a1a3fc25閱讀 334評(píng)論 1 2
  • 我如狂風(fēng)零如,一陣呼嘯。 - 美美當(dāng)自己沉寂在一個(gè)世外桃源中時(shí)锄弱,那正是夢(mèng)考蕾。而那美夢(mèng),恰如一陣微風(fēng)会宪,輕輕呼嘯肖卧,但這陣陣微...
    李超鋒閱讀 442評(píng)論 0 0