IntelliJ IDEA之UML類圖
生成方法
Show Diagrams
- 選中須要的類,右鍵單擊
Diagrams
,以後點擊Show Diagrams
,或者快捷鍵Ctrl+Alt+Shift+U
-
生成類圖,將類圖顯示在編輯器窗口中
html
Show Diagrams PopUp
- 選中所須要類,右鍵單擊
Diagrams
,以後點擊Show Diagrams PopUp
,或者快捷鍵Ctrl+Alt+U
-
生成類圖,將類圖顯示在彈出窗口中
java
工具欄(Toolbar)
泛化(Generalization)
- 代碼(體如今類的繼承)
//Person表明人 public class Person { } //Man表明男人 public class Man extends Person{ }
- 類圖(實線三角形箭頭,指向父類)
實現(Realization)
- 代碼(體如今類的實現)
//Dao接口 public interface Dao { } //Dao實現 public class DaoImpl implements Dao { }
- 類圖(虛線三角形箭頭,指向父類)
依賴(Dependency)
代碼(體如今局部變量、方法的參數或者對靜態方法的調用)設計模式
//手機類 public class CellPhone { //手機能夠玩遊戲 public void playGames(){ System.out.println("play games"); } } //普通人 public class Person { //買手機 public CellPhone buyCellPhone(){ return new CellPhone(); } //買個手機玩遊戲 public void play(){ CellPhone cellPhone = buyCellPhone(); cellPhone.playGames(); } }
- 類圖(虛線普通箭頭,指向被調用者,其中帶有create的虛線是指建立(new)被調用者)
關聯(Association)、聚合(Aggregation)、組合(Composition)
- 區別
三者在代碼上的表現相同,只是語意上有所差異。
組合:總體和部分同生共死,部分沒法離開總體單獨存在
聚合:部分能夠離開總體單獨存在
關聯:表明一種擁有關係 - 代碼(體如今成員變量中)
//父母類 public class Parent { //能夠擁有多個孩子 public List<Child> children; //能夠擁有手機 public CellPhone cellPhone; } //孩子類 public class Child { //孩子的父母 public Parent parent; } //手機類 public class CellPhone { }
- 類圖(三種類型在IntelliJ IDEA均以實線+菱形箭頭+普通箭頭表示,菱形箭頭指向總體,普通箭頭指向部分,箭頭兩端的數字表示實例的個數)
一個父母能夠有多個孩子(1 *),能夠有一部手機(1 1)。每一個孩子都有一個父母(1 1)
markdown
設計模式中-UML相關連接
IntelliJ IDEA官網連接intellij-idea
UML類圖幾種關係的總結編輯器
設計模式中類的關係ide