身為程式設計師還看不懂UML類圖? 一文帶你零基礎學會看 ...

文章推薦指數: 80 %
投票人數:10人

上表包含了UML類圖的基本圖示法。

怎麼樣看了這個圖例,上面的UML類類圖就能看懂一大部分了吧,下面詳細的介紹類圖 ... MdEditor 身為程式設計師還看不懂UML類圖?一文帶你零基礎學會看UML類圖! 語言:CN/TW/HK 時間 2021-10-0913:15:06 陳言必行 主題: 前端 theme:awesome-green highlight:a11y-dark 小知識,大挑戰!本文正在參與“程式設計師必備小知識”創作活動。

本文已參與「掘力星計劃」,贏取創作大禮包,挑戰創作激勵金。

一,UML類圖示例圖 看下這個經典的UML的經典的示例圖~(我照著百度百科的簡介圖自己畫了一份)~: 二,UML類圖圖例 功能|圖示|描述|舉例 :-|:-|:-|:- 繼承關係|---▷|實線+空心三角形|鳥---▷動物;鳥繼承動物 實現介面|•••▷|虛線+空心三角形|大雁•••▷飛翔;大雁實現了飛翔介面 實現介面|---○|棒棒糖表示法|唐老鴨---○講人話;唐老鴨實現講人話介面 關聯關係|--->|實線剪頭|企鵝--->氣候;企鵝需要‘知道’氣候的變化 依賴關係|•••>|虛線剪頭|動物•••>氧氣;動物依賴於氧氣 聚合關係|◇--->|空心菱形+實線剪頭|大雁◇--->翅膀;部分和整體的關係 合成關係|◆--->|實心菱形+實線剪頭|大雁◆--->雁群;A包含B,但B不是A的一部分 上表包含了UML類圖的基本圖示法。

怎麼樣看了這個圖例,上面的UML類類圖就能看懂一大部分了吧,下面詳細的介紹類圖中每個部分的含義: 三,分步解析說明 3.1類圖: 先看這個“動物”框,它就代表一個類。

類圖分為三層 -第一層:顯示類的名稱,若是抽象類,則用斜體表示。

-第二層:是類的特性,通常是欄位和屬性。

-第三次:是類的方法。

前面的符號表示訪問許可權:“+”表示public,“-”表示private,“#”表示protected。

3.2介面: 這個“飛翔”,表示一個介面圖,與類圖的區別主要是頂端有個《interface》標識。

-第一行:介面名稱 -第二行:介面方法 介面還有另外一個表示方法,稱為棒棒糖表示法,如上圖中“唐老鴨”類實現了“講人話”介面。

3.3實現繼承 繼承圖示: 實現繼承: csharp classBird:Animal{} 類與類之間的繼承關係,用空心三角形+實線來表示。

3.4實現介面: 實現圖示: 實現介面: csharp classWildGoose:IFly{} 3.5關聯關係: 在企鵝~(Pengui)~類中引用到氣候~(Climate)~物件。

csharp classPengui:Bird { privateClimatecalimate; } 企鵝和氣候這兩個類,企鵝需要‘知道’氣候的變化,需要‘瞭解’氣候規律。

當一個類‘知道’另一個類時,可以用關聯關係用實線箭頭來表示。

3.6聚合關係: 看下大雁和雁群這個兩個類,大雁是群居動物,每隻大雁都是屬於一個雁群,一個雁群可以有多隻大雁。

所以它們之間就滿足聚合關係,聚合關係用空心菱形+實線箭頭來表示。

csharp classWildGooseGroup { privateWildGoose[]_WildGooseArray } 聚合表示一種弱的‘擁有’關係,體現的是A物件可以包含B物件,但B物件不是A物件的一部分。

3.7合成關係: 這裡鳥類和翅膀類是合成關係,因為它們是部分和整體的關係,並且這裡的鳥和翅膀的生命週期是相同的。

合成關係用實心菱形+實線箭頭來表示。

這裡連線兩端還有兩個數字,這被稱為基數,這表明一端的類可以有幾個例項。

若一個類可以有無數個例項,則就可以以用‘n’來表示。

關聯關係,聚合關係也可以有基數。

程式碼解析:在鳥~(Bird)~類中,初始化時,例項化翅膀~(Wing)~,它們之間同時生成 csharp classBird:Animal { privateWingwing; privateBird() { wing=newWing(); } } 合成是一種強的‘擁有’關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。

在這裡鳥和其翅膀就是合成關係。

3.8依賴關係: csharp abstractclassAnimal { publicMetabolism(Oxygenoxy,Waterwater) { } } ‘動物’的新陳代謝需要‘氧氣’和‘水’來維持生命,所以依賴於氧氣和水。

這種依賴關係用虛線箭頭來表示。

四,UML類圖繪製工具 UML工具比較多,常用的三大UML建模工 1.PowerDesign 2.Rose 3.Visio 還有一些免費的工具有: 1.UMLet 2.ArgoUML 3.JUDE 4.BOUml 5.VisualParadigm 免費線上編輯工具推薦:ProcessOn 「其他文章」 Unity報錯之InvalidProgramException:InvalidILcodeinCC_Ctrl:getFixByPlatForm Unity之解決2019之後的版本打apk卡到BuildingGradleproject問題 Unity報錯之LuaException:cannotopenScripts:Nosuchfileordirectory Unity之使用ShareSDK分享連結分享的卻是文字 Unity之UGUI程式碼生成UI設定為相對位置問題 Unity之動畫系統--AnimationEvent使用 Unity物理系統--剛體簡介 UnityUI系統--UGUI之RectTransform簡介 Unity之Time類簡介及應用 UnityUI系統--NGUI之AtlasMaker UnityUI系統--NGUI簡介 UnityUI系統--UGUI簡介 Unity之基礎尋路--NavMesh簡介和使用示例 演算法提高11-1實現strcmp函式 演算法訓練Torry的困惑(基本型) Unity之三種抽獎示例(跑馬燈,轉盤,老虎機例項文中原始碼) 因為一個疏忽差點被老闆開除,Unity解決包體過大的問題記錄 身為程式設計師還看不懂UML類圖?一文帶你零基礎學會看UML類圖! SourceTree本地分支無法顯示問題記錄 「前端」 TypeScript終極初學者指南 史上最全,用60VsCode外掛,打造最強編輯器 前端必讀:如何在JavaScript中使用SpreadJS匯入和匯出Excel檔案 非大廠的我們,要如何去搞前端基建? 兩道超有意思的CSS面試題,試試你的基礎 前端動效講解與實戰 前端面試八股文 前端應該掌握的瀏覽器除錯技巧 大終端領域的新物種-KUN 前端必讀:如何在JavaScript中使用SpreadJS匯入和匯出Excel檔案



請為這篇文章評分?