一、什么是類圖
類圖從通俗的角度來講,我認為是一種用來描述一個模型靜態結構的圖,包括:模塊的定義,模塊的功能以及比較重要的是描述模塊之間的關系。通過這種圖的描述方式,可以讓讀者從一個直觀的角度來去了解一個軟件項目的整體框架,而不用像通過閱讀代碼來學習,這樣可以省略一些在無關緊要的實現細節上面的開銷。(個人見解)
能夠百度到的對類圖的定義:
類圖(Class diagram)是顯示了模型的靜態結構,特別是模型中存在的類、類的內部結構以及它們與其他類的關系等。類圖不顯示暫時性信息。
類圖(Class diagram)由許多(靜態)說明性的模型元素(例如類、包和它們之間的關系,這些元素和它們的內容互相連接)組成。類圖可以組織在(並且屬於)包中,僅顯示特定包中的相關內容。
類圖(Class diagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態結構和關系;它用於描述系統的結構化設計。
二、類圖能描述什么
用比較規范的說法來講,類圖所能描述的模塊之間的關系有如下幾種:
泛化(Generalization):可以理解為一種繼承的關系,子類與父類之間的關系,使讀者可以看到模塊是怎樣復用父類的功能,又有哪些特有的功能
實現(Realization):沒有用過,據說是一種類似於抽象類的定義與實現的過程
關聯(Association):類似於數據庫ER圖中實體集之間的關系描述:多對多,多對一,一對一等等
聚合(Aggregation):強調的是一種依附的關系,只是被依附的對象和依附者都可以單獨存在,而不是像泛華中描述的父子關系
組合(Composition):整體與部分的關系,一種類似於描述包含的關系,強調極強的關聯性
依賴(Dependency):我覺得也可以理解為調用關系,一個模塊需要使用其他模塊時存在這種關系
需要強調的是:泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
三、我自己畫的類圖
也就是在團隊項目中的類圖:
可以看到有4個類,在類圖中均給出了每個類的屬性以及方法,而類與類之間均為調用關系,這是由於功能拆分的原因:將一個大的功能拆分為幾個模塊來實現,自然每個模塊均有其使用的地方,同時也有缺少的功能,那么這時通過調用的方式來實現功能的拼接。