UML 類別圖


Posted by LYH on 2022-07-15

類別圖

使用三層的矩形框來表示一個類別,如下圖:

  • 第一層:類別的名稱。
  • 第二層:類別的特性,也就是成員變數、屬性。
    封裝等級 變數名稱: 變數型態
    或
    封裝等級 變數名稱: 變數型態 = 初始值
    
  • 第三層:類別的操作,也就是成員函式、方法。
    封裝等級 函式名稱(輸入參數 1: 參數 1 型態, 輸入參數 2: 參數 2 型態, ...): 回傳值型態
    

冒號「:」表示成員變數和回傳值的資料型態。
等號「=」表示初始值。

封裝等級

封裝等級由以下四個符號表示:
「+」- public
「#」- protect
「-」- private
「~」- package

Example.

對應的程式碼 ( Java ):

public class TestClass{
        public TextClass(){
        }

        public int publicAttribute = 1;

        protected String protectAttribute;

        private long privateAttribute;

        char packageAttribute;

        public String publicMethod(int Parameter){
                return "";
        }

        protected void protectMethod(){
        }

        private void privateMethod(){
        }

        void packageMethod(){
        }
}

static 靜態成員

以底線表示 static 靜態成員。

Example.

對應的程式碼 ( Java ):

public class TestClass{
        public TextClass(){
        }

        public static int publicAttribute = 1;

        public String publicMethod(int Parameter){
                return "";
        }
}

abstract 抽象類別

類別或方法名稱以斜體表示為抽象類別或抽象方法。

Example.

對應的程式碼 ( Java ):

public abstract class TestClass{
        public TextClass(){
        }

        public int publicAttribute = 1;

        public abstract void publicMethod(){
        }
}

interface 介面

介面的表示方式有兩種,一種是圓圈,另一種是名稱上面標示《interface》字樣,與一般類別圖類似,如下圖:

inheritance 繼承關係

以帶空心三角箭頭的實線來表示,且箭頭指向父類別,如下圖:

interface 介面與 implement 實現關係

以帶空心三角箭頭的虛線來表示,且箭頭指向介面或直接以實線連接圓圈,如下圖:

dependency 依賴關係

依賴關係是一種使用的關係,即一個類別的實現需要另一個類別的協助。

以帶箭頭的虛線來表示,且箭頭指向提供協助的類別,如下圖:

※subString 函式的輸入參數需要 String 類型,因此 StringTools 類別依賴於 String 類別。

association 關聯關係

關聯關係是一種擁有的關係,表示某個類別知道另一個類別的屬性和方法,例如老師和學生、丈夫和妻子,此關聯關係可以是雙向的,也可以是單向的。

雙向的關聯關係以帶有兩個箭頭或不帶箭頭的實線來表示,單向的關聯關係以帶有一個箭頭的實線來表示且箭頭指向被擁有者,如下圖:

aggregation 聚合關係

聚合關係是表示整體與部分之間的關係,且部分可以離開整體而單獨存在,如車和輪胎就是整理和部分的關係,輪胎離開車仍然可以存在。

以帶空心菱形的實線來表示,且菱形指向整體,如下圖:

composition 組合關係

組合關係也是表示整體與部分之間的關係,但部分不能離開整體,無法單獨存在,如人跟手。

以帶實心菱形的實線,且菱形指向整體,如下圖:


學習資源:
1.设计模式2 Uml类图详细介绍(上)
2.设计模式3 Uml类图详细介绍(下)


#Design pattern #uml







Related Posts

金魚系列,淺談 css reset

金魚系列,淺談 css reset

深入學習 LSD-SLAM - 2

深入學習 LSD-SLAM - 2

[ 前端工具 ] - Bootstrap

[ 前端工具 ] - Bootstrap


Comments