類和接口關係

IntelliJ IDEA之UML類圖

生成方法

Show Diagrams

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

Show Diagrams PopUp

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

工具欄(Toolbar)

Toolbar

泛化(Generalization)

  • 代碼(體現在類的繼承)
//Person代表人
public class Person {

}

//Man代表男人
public class Man extends  Person{
    
}
  • 類圖(實線三角形箭頭,指向父類)

Generalization

實現(Realization)

  • 代碼(體現在類的實現)
//Dao接口
public interface Dao {

}
//Dao實現
public class DaoImpl implements  Dao {
    
}

  • 類圖(虛線三角形箭頭,指向父類)

Realization

依賴(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)被調用者)

Dependency

關聯(Association)、聚合(Aggregation)、組合(Composition)

  • 區別
    三者在代碼上的表現相同,只是語意上有所差別。
    組合:整體和部分同生共死,部分無法離開整體單獨存在
    聚合:部分可以離開整體單獨存在
    關聯:代表一種擁有關係
  • 代碼(體現在成員變量中)
//父母類
public class Parent {
    
    //可以擁有多個孩子
    public List<Child> children;
    //可以擁有手機
    public CellPhone cellPhone;
}

//孩子類
public class Child {
    
    //孩子的父母
    public Parent parent;
}

//手機類
public class CellPhone {
    
}
  • 類圖(三種類型在IntelliJ IDEA均以實線+菱形箭頭+普通箭頭表示,菱形箭頭指向整體,普通箭頭指向部分,箭頭兩端的數字表示實例的個數)

Associate
一個父母可以有多個孩子(1 *),可以有一部手機(1 1)。每個孩子都有一個父母(1 1)

設計模式中-UML相關鏈接

IntelliJ IDEA官網鏈接

UML類圖幾種關係的總結

設計模式中類的關係

看懂UML類圖和時序圖

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章