在軟體開發過程中,隨著專案規模的擴大和複雜度的提升,有效的設計和文件工具變得至關重要。統一建模語言(UML)作為一種標準化的建模語言,為開發人員提供了一種強大的方式來描述、建構和視覺化軟體系統。其中,UML類別圖作為物件導向設計(OOD)的核心工具之一,扮演著舉足輕重的角色。
UML類別圖透過圖形化的方式展示了系統中的類別、它們之間的關係以及類別的內部結構,如屬性(字段)和方法(函數)。這些圖表不僅有助於開發人員理解系統的整體架構,還能在團隊協作中促進溝通和協作,確保所有成員對設計有共同的理解。今天我們就來學習UML類別圖。
什麼是類別圖 ?類別圖有哪些繪製規則?類別圖如何畫?為方便大家學習,在這裡小編提煉總結了一下,希望大家看完後,可以對類圖有基本了解
類別圖以反映類別的結構(屬性、操作)以及類別之間的關係為主要目的,描述了軟體系統的結構,是一種靜態建模方法。類別圖用來描述系統中有意義的概念,包括具體的概念、抽象的概念、實現面向的概念等,是現實世界中事物的抽象。類別圖的主要作用是對系統的詞彙進行建模、對簡單的協作進行建模和對邏輯資料庫模式進行建模。
類別圖概括起來主要由兩部分組成:類別和類別之間的關係,其中對類別的定義如下圖所示,主要由三部分組成,它們分別是類別名稱、類別的屬性、類別的方法,對應圖中的三個分區內容。

類別名稱:圖中最上面的矩形框中為類別名稱。如果字體為斜體,表示為抽象類別
類別的屬性:類別名稱下方的區域
類別的方法:圖中的下面部分
*符號解釋說明:屬性和方法前面的“+”“-”和“#”表示訪問級別,以下對這些符號進行解釋說明。
+:public,公用的,對所有類別可見
-:private,私有的,只對該類別本身可用
#:protected,受保護的,對該類別的子孫可見
~:package,包的,只對同一包聲明的其他類別可見
=:表示預設值
底線:static
斜體:抽象(注意也可以用兩個尖括號包裹來表示抽象,例如- <<我是抽象類別or介面>>)
冒號前是方法名稱/變數名稱(根據有無括號區分),冒號後面是返回參數/變數類型(根據有無括號區分),如果沒有冒號的話表示方法返回空(也有人透過:void表示返空)
類別之間的關係主要包括泛化(繼承)、依賴、關聯、聚合、組合和實現6種關係,以下將它們一一闡釋。

1.泛化關係
泛化關係是一種繼承關係,子類別繼承父類別的所有行為和屬性,子類別可以新增新的功能或重寫父類別功能。表示方法:空心三角+實線,箭頭指向父類別

2、依賴關係
依賴關係表示一個類別使用(依賴)另一個類別的服務或資訊。當一個類別的改變會影響到另一個類別時,兩個類別之間存在依賴關係。一般來說,依賴總是單向的,不應該有雙向依賴。表示方法:尖括號+虛線

3、關聯關係
關聯關係是一種擁有的關係,它使一個類別知道另一個類別的屬性和方法。它體現不同類別的一種強依賴關係,例如我和我的朋友,這種關係比依賴更強,不存在依賴關係中的偶然性,關係也不是臨時的,一般是長期性的。
關聯關係分為單向關聯或雙向關聯,也可以有多重性(一對多),雙向的關聯可以有兩個箭頭或沒有箭頭,單向的關聯有一個箭頭。表示方法:尖括號+實線,箭頭指向被擁有者

4、聚合關係
聚合關係是關聯關係的一種,表示一種「弱」的「擁有」關係,是整體與部分的關係,且部分可以離開整體而單獨存在,如車和輪胎是整體和部分的關係,輪胎離開車仍然可以單獨存在。表示方法:空心菱形+實線,菱形指向整體

5、組合關係
組合關係也是關聯關係的一種,是比聚合關係還要強的關係,是整體與個體的關係,但個體不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。它要求在普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期。表示方法:實心菱形+實線