1. 程式人生 > >IntelliJ IDEA之UML類圖

IntelliJ IDEA之UML類圖

普通 href 多個 img clas detail 手機玩遊戲 creat https

IntelliJ IDEA之UML類圖

生成方法

Show Diagrams

  • 選中需要的類,右鍵單擊Diagrams,之後點擊Show Diagrams,或者快捷鍵Ctrl+Alt+Shift+U
  • 生成類圖,將類圖顯示在編輯器窗口中
    技術分享圖片

    Show Diagrams PopUp

  • 選中所需要類,右鍵單擊Diagrams,之後點擊Show Diagrams PopUp,或者快捷鍵Ctrl+Alt+U
  • 生成類圖,將類圖顯示在彈出窗口中
    技術分享圖片

工具欄(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)

設計模式中-UML相關鏈接

IntelliJ IDEA官網鏈接

UML類圖幾種關系的總結

設計模式中類的關系

看懂UML類圖和時序圖

java_UML:繼承/泛化、實現、依賴、關聯、聚合、組合的聯系與區別 (2016-07-12)

IntelliJ IDEA之UML類圖