UML類圖

财神给你送元宝發表於2024-12-10

一、UML類圖基本介紹

1,UML介紹

  • UML -- Unified modeling language(統一建模語言),是一種用於軟體系統分析和設計的語言工具,它使用者幫助軟體開發人員進行思考和記錄思路的結果
  • UML本身是一套符號的規定,就像數學符號和化學符號一樣,這些符號使用者描述軟體模型中的各個元素和他們之間的關係,比如類、介面、實現、泛華、依賴、組合、聚合等。

2,UML圖

  畫UML圖與寫文章差不多,都是把自己的思想描述給別人看,關鍵在於思路和條理,UML圖分類:

  • 用例圖(use case)
  • 靜態結構圖:類圖、物件圖、包圖、元件圖、部署圖
  • 動態行為圖:互動圖(時序圖與協作圖)、狀態圖、活動圖

  說明:類圖是描述類與類之間的關係的,是UML圖中最核心的

3,UML類圖

  • 用於描述系統中的類(物件)本身的組成和類(物件)之間的各種靜態關係。
  • 類之間的關係:依賴、泛化(繼承)、實現、關聯、聚合與組合

二、類圖——依賴(Dependence)

1,基本介紹

  • 依賴關係:是一種使用的關係,即一個類的實現需要另一個類的協助,所以要儘量不使用雙向的互相依賴。
  • 程式碼表現:區域性變數、方法的引數護著對靜態方法的呼叫
  • 識別符號:帶箭頭的虛線,指向被使用者

2,示例圖

  程式碼示例

//另外4個類與當前類都是依賴關係
public class PersonService {
    private PersonDao personDao;
    public void save(Person person) {
    }
    public IDCard getIDCard(Integer personid) {
        return new IDCard();
    }
    public void modify() {
        Department department = new Department();
    }
}

class PersonDao {}

class Person {}

class IDCard {}

class Department {}

  UML類圖

3,總結

  • 類中用到了對方
  • 類的成員屬性
  • 方法的返回型別
  • 方法接收的引數型別
  • 方法中使用到

三、類圖——泛化(Generalization)

1,基本介紹

  • 泛化關係:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。
  • 識別符號:帶三角箭頭的實線,箭頭指向父類

2,示例圖

  程式碼示例

public abstract class Father {
    public void eat() {
    }
}

public class Son extends Father {}

  UML類圖

3,總結

  • 泛化關係實際上就是繼承關係
  • 如果A類繼承了B類,我們就說A和B存在泛化關係

四、類圖——實現(Implementation)

1,基本介紹

  • 實現關係:指的是一個class類實現Interface介面(可以是多個)的功能;實現是類與介面之間最常見的關係;在java中此類關係通過關鍵字implements明確標識
  • 識別符號:帶三角箭頭的虛線,箭頭指向介面

2,示例圖

  程式碼示例

public interface PersonService {
    public void delete(int id);
}

public class PersonServiceImpl implements PersonService {
    @Override
    public void delete(int id) {}
}

  UML類圖

五、類圖——關聯(Association)

1,基本介紹

  • 關聯關係:是一種擁有的關係,它使一個類知道另一個類的屬性和方法;如:老師與學生、丈夫與妻子關聯等。關聯可以是雙向關聯,也可以是單向關聯。雙向關聯可以有兩個箭頭或沒有箭頭,單向關聯有一個箭頭。它是依賴關係的特例
  • 0..1:表示可以有0個或者1個例項;0..*: 表示對例項的數目沒有限制;1   :表示只能有一個例項;1..* :表示至少有一個例項
  • 識別符號:帶普通箭頭的實心線,指向被擁有者

2,示例圖

  程式碼

public class Teacher {
}
public class Student {
    Teacher teacher;
}

  UML類圖

六、類圖——聚合(Aggregation)

1,基本介紹

  • 聚合關係:是整體與部分的關係,且部分可以離開整體而單獨存在。聚合關係是關聯關係的特例,所以他具有關聯的導航性與多重性。
  • 識別符號:使用帶空心菱形的實現表示

2,示例圖

  程式碼示例,與關聯程式碼一致

public class Computer {
    Mouse mouse;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }
}

public class Mouse {
}

  UML類圖 

七、類圖——組合(Composition)

1,基本介紹

  • 組合關係:是整體與部分的關係,但部分不能離開整體而單獨存在組合關係也是關聯關係的一種,是比聚合關係還要強的關係
  • 識別符號:帶實心菱形的實線,菱形指向整體

2,示例圖

  程式碼示例,與關聯程式碼一致

public class Computer {
    Mouse mouse = new Mouse();
}

public class Mouse {
}

  UML類圖

八、總結

  組合、聚合、關聯和依賴這幾種關係都是語義級別的,所以從程式碼層面並不能完全區分各種關係。關係所表現的強弱程度依次為:組合>聚合>關聯>依賴。

相關文章