最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA如何快速構(gòu)建UML類圖

 更新時間:2025年02月14日 10:56:04   作者:趙廣陸  
UML類圖是一種用于描述軟件系統(tǒng)靜態(tài)結(jié)構(gòu)的可視化建模語言,它通過類、屬性、方法以及它們之間的關(guān)系來表示系統(tǒng),類圖主要用于面向?qū)ο笤O(shè)計,幫助理解系統(tǒng)的結(jié)構(gòu)和類之間的關(guān)系,IDEA提供了自動生成UML類圖的功能,但其局限性在于只能基于現(xiàn)有代碼生成

1 UML圖

統(tǒng)一建模語言(Unified Modeling Language,UML)是用來設(shè)計軟件的可視化建模語言。它的特點是簡單、統(tǒng)一、圖形化、能表達(dá)軟件設(shè)計中的動態(tài)與靜態(tài)信息。

UML 從目標(biāo)系統(tǒng)的不同角度出發(fā),定義了用例圖、類圖、對象圖、狀態(tài)圖、活動圖、時序圖、協(xié)作圖、構(gòu)件圖、部署圖等 9 種圖。

1.1 類圖概述

類圖(Class diagram)是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。類圖不顯示暫時性的信息。類圖是面向?qū)ο蠼5闹饕M成部分。

1.2 類圖的作用

  • 在軟件工程中,類圖是一種靜態(tài)的結(jié)構(gòu)圖,描述了系統(tǒng)的類的集合,類的屬性和類之間的關(guān)系,可以簡化了人們對系統(tǒng)的理解;
  • 類圖是系統(tǒng)分析和設(shè)計階段的重要產(chǎn)物,是系統(tǒng)編碼和測試的重要模型。

1.3 類圖表示法

1.3.1 類的表示方式

在UML類圖中,類使用包含類名、屬性(field) 和方法(method) 且?guī)в蟹指罹€的矩形來表示,比如下圖表示一個Employee類,它包含name,age和address這3個屬性,以及work()方法。

屬性/方法名稱前加的加號和減號表示了這個屬性/方法的可見性,UML類圖中表示可見性的符號有三種:

  • +:表示public
  • -:表示private
  • #:表示protected

屬性的完整表示方式是: 可見性 名稱 :類型 [ = 缺省值]

方法的完整表示方式是: 可見性 名稱(參數(shù)列表) [ : 返回類型]

注意:

  • 中括號中的內(nèi)容表示是可選的
  • 也有將類型放在變量名前面,返回值類型放在方法名前面

舉個栗子:

上圖Demo類定義了三個方法:

  • method()方法:修飾符為public,沒有參數(shù),沒有返回值。
  • method1()方法:修飾符為private,沒有參數(shù),返回值類型為String。
  • method2()方法:修飾符為protected,接收兩個參數(shù),第一個參數(shù)類型為int,第二個參數(shù)類型為String,返回值類型是int。

1.3.2 類與類之間關(guān)系的表示方式

1.3.2.1 關(guān)聯(lián)關(guān)系

關(guān)聯(lián)關(guān)系是對象之間的一種引用關(guān)系,用于表示一類對象與另一類對象之間的聯(lián)系,如老師和學(xué)生、師傅和徒弟、丈夫和妻子等。關(guān)聯(lián)關(guān)系是類與類之間最常用的一種關(guān)系,分為一般關(guān)聯(lián)關(guān)系、聚合關(guān)系和組合關(guān)系。我們先介紹一般關(guān)聯(lián)。

關(guān)聯(lián)又可以分為單向關(guān)聯(lián),雙向關(guān)聯(lián),自關(guān)聯(lián)。

1,單向關(guān)聯(lián)

在UML類圖中單向關(guān)聯(lián)用一個帶箭頭的實線表示。上圖表示每個顧客都有一個地址,這通過讓Customer類持有一個類型為Address的成員變量類實現(xiàn)。

2,雙向關(guān)聯(lián)

從上圖中我們很容易看出,所謂的雙向關(guān)聯(lián)就是雙方各自持有對方類型的成員變量。

在UML類圖中,雙向關(guān)聯(lián)用一個不帶箭頭的直線表示。上圖中在Customer類中維護(hù)一個List<Product>,表示一個顧客可以購買多個商品;在Product類中維護(hù)一個Customer類型的成員變量表示這個產(chǎn)品被哪個顧客所購買。

3,自關(guān)聯(lián)

自關(guān)聯(lián)在UML類圖中用一個帶有箭頭且指向自身的線表示。上圖的意思就是Node類包含類型為Node的成員變量,也就是“自己包含自己”。

1.3.2.2 聚合關(guān)系

聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)關(guān)聯(lián)關(guān)系,是整體和部分之間的關(guān)系。

聚合關(guān)系也是通過成員對象來實現(xiàn)的,其中成員對象是整體對象的一部分,但是成員對象可以脫離整體對象而獨立存在。例如,學(xué)校與老師的關(guān)系,學(xué)校包含老師,但如果學(xué)校停辦了,老師依然存在。

在 UML 類圖中,聚合關(guān)系可以用帶空心菱形的實線來表示,菱形指向整體。下圖所示是大學(xué)和教師的關(guān)系圖:

1.3.2.3 組合關(guān)系

組合表示類之間的整體與部分的關(guān)系,但它是一種更強(qiáng)烈的聚合關(guān)系。

在組合關(guān)系中,整體對象可以控制部分對象的生命周期,一旦整體對象不存在,部分對象也將不存在,部分對象不能脫離整體對象而存在。例如,頭和嘴的關(guān)系,沒有了頭,嘴也就不存在了。

在 UML 類圖中,組合關(guān)系用帶實心菱形的實線來表示,菱形指向整體。下圖所示是頭和嘴的關(guān)系圖:

1.3.2.4 依賴關(guān)系

依賴關(guān)系是一種使用關(guān)系,它是對象之間耦合度最弱的一種關(guān)聯(lián)方式,是臨時性的關(guān)聯(lián)。在代碼中,某個類的方法通過局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用來訪問另一個類(被依賴類)中的某些方法來完成一些職責(zé)。

在 UML 類圖中,依賴關(guān)系使用帶箭頭的虛線來表示,箭頭從使用類指向被依賴的類。下圖所示是司機(jī)和汽車的關(guān)系圖,司機(jī)駕駛汽車:

1.3.2.5 繼承關(guān)系

繼承關(guān)系是對象之間耦合度最大的一種關(guān)系,表示一般與特殊的關(guān)系,是父類與子類之間的關(guān)系,是一種繼承關(guān)系。

在 UML 類圖中,泛化關(guān)系用帶空心三角箭頭的實線來表示,箭頭從子類指向父類。在代碼實現(xiàn)時,使用面向?qū)ο蟮睦^承機(jī)制來實現(xiàn)泛化關(guān)系。例如,Student 類和 Teacher 類都是 Person 類的子類,其類圖如下圖所示:

1.3.2.6 實現(xiàn)關(guān)系

實現(xiàn)關(guān)系是接口與實現(xiàn)類之間的關(guān)系。在這種關(guān)系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的所有的抽象操作。

在 UML 類圖中,實現(xiàn)關(guān)系使用帶空心三角箭頭的虛線來表示,箭頭從實現(xiàn)類指向接口。例如,汽車和船實現(xiàn)了交通工具,其類圖如圖 9 所示。

2 IDEA快速構(gòu)建UML類圖

最近在開發(fā)的過程當(dāng)中,對于已有的代碼,想將相關(guān)類繪制成UML類圖,雖然現(xiàn)在有很多UML類圖的優(yōu)秀軟件,比如ProcessOn(可視化編輯)、draw.io(可視化編輯)、PlantUML(代碼生成)。

其實看到這里我就想IDEA中有沒有像PlantUML一樣的自動生成的插件,本著懷疑的態(tài)度百度了一下,果然IDEA還是很強(qiáng)大的,這個插件都是自帶的,接下稍微講述如何利用IDEA生成UML類圖的教程。

說之前先說一下Diagram這個單詞,意思是圖表; 示意圖; 圖解; [數(shù)] 線圖的意思。

打開設(shè)置 File->Setting或windows下按Ctrl+Alt+S在搜索框中輸入``Diagram,如下圖:

如上所示,我們主要關(guān)心的只有Java Class Diagrams下面的幾個單選框,分別對應(yīng)紅字部分,一般的UML類圖只需要知道成員變量、構(gòu)造器和方法(前面三個),其他的隨意,設(shè)置好了之后我們就來演示一下,

選擇需要的類文件,在編輯器中打開它

按Ctrl + Shift + Alt + U或Ctrl + Alt + U或右鍵選擇,``生成類Uml關(guān)聯(lián)圖,如下圖:

上面的是類的UML圖,下面的support包的UML圖:

局限性:雖然這個很是方便,但是也有他自己的局限性。

首先這個功能只能是根據(jù)類來自動生成的,所以對于設(shè)計類的時候就不行了,還是需要正規(guī)的UML圖軟件。

還有就是對于專業(yè)的UML軟件來說,這種自動生成的東西可能表達(dá)并不是非常的準(zhǔn)確直觀,特別是對于UML圖有嚴(yán)格要求的人來說,顯得格外重要。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實現(xiàn)文件上傳到服務(wù)器本地并通過url訪問的方法步驟

    Java實現(xiàn)文件上傳到服務(wù)器本地并通過url訪問的方法步驟

    最近項目中使用到了文件上傳到服務(wù)器的功能,下面這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)文件上傳到服務(wù)器本地并通過url訪問的方法步驟,文中通過圖文以及實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Maven中依賴沖突的排查和修復(fù)全流程指南

    Maven中依賴沖突的排查和修復(fù)全流程指南

    依賴沖突是寫?Java?項目時最常見、也最煩的坑之一,特別是在大型項目、Spring?Boot、多模塊工程里,這篇文章會帶你用最實用、最開發(fā)者視角的方法來解決?Maven?依賴沖突,有需要的可以了解下
    2025-12-12
  • Java基礎(chǔ)將Bean屬性值放入Map中的實例

    Java基礎(chǔ)將Bean屬性值放入Map中的實例

    這篇文章主要介紹了Java基礎(chǔ)將Bean屬性值放入Map中的實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • AOP之事務(wù)管理<aop:advisor>的兩種配置方式

    AOP之事務(wù)管理<aop:advisor>的兩種配置方式

    這篇文章主要介紹了AOP之事務(wù)管理<aop:advisor>的兩種配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringMVC核心DispatcherServlet處理流程分步詳解

    SpringMVC核心DispatcherServlet處理流程分步詳解

    這篇文章主要介紹了SpringMVC核心之中央調(diào)度器DispatcherServlet的相關(guān)知識,包括SpringMVC請求處理過程及SrpingMVC容器和spring IOC容器關(guān)系,需要的朋友可以參考下
    2023-04-04
  • 一文掌握IDEA中的Maven集成與創(chuàng)建

    一文掌握IDEA中的Maven集成與創(chuàng)建

    maven是用來幫助我們快速搭建項目結(jié)構(gòu)與開發(fā)環(huán)境的好工具,這篇文章主要介紹了一文掌握IDEA中的Maven集成與創(chuàng)建,需要的朋友可以參考下
    2023-02-02
  • 了解Maven的<relativePath/>標(biāo)簽用法

    了解Maven的<relativePath/>標(biāo)簽用法

    這篇文章主要介紹了了解Maven的<relativePath/>標(biāo)簽用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 教你怎么用java一鍵自動生成數(shù)據(jù)庫文檔

    教你怎么用java一鍵自動生成數(shù)據(jù)庫文檔

    最近小編也在找這樣的插件,就是不想寫文檔了,浪費時間和心情啊,果然我找到一款比較好用,操作簡單不復(fù)雜.screw 是一個簡潔好用的數(shù)據(jù)庫表結(jié)構(gòu)文檔的生成工具,支持 MySQL、Oracle、PostgreSQL 等主流的關(guān)系數(shù)據(jù)庫.需要的朋友可以參考下
    2021-05-05
  • Java超詳細(xì)講解類的繼承

    Java超詳細(xì)講解類的繼承

    繼承就是可以直接使用前輩的屬性和方法。自然界如果沒有繼承,那一切都是處于混沌狀態(tài)。多態(tài)是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力。多態(tài)就是同一個接口,使用不同的實例而執(zhí)行不同操作
    2022-04-04
  • spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法

    spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法

    這篇文章主要介紹了spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

遵义县| 洛南县| 永安市| 皋兰县| 太保市| 西贡区| 乌拉特中旗| 东乡| 温宿县| 和龙市| 恩施市| 新郑市| 句容市| 隆安县| 云和县| 航空| 腾冲县| 甘泉县| 开江县| 诸暨市| 富锦市| 阿尔山市| 中西区| 汤阴县| 宁安市| 黎城县| 台东市| 蕲春县| 客服| 尼木县| 德庆县| 马公市| 灵宝市| 甘谷县| 衡阳县| 邮箱| 东阳市| 长武县| 南昌县| 松潘县| 东乌珠穆沁旗|