UML類圖詳解及類圖設計


      UML中定義了用例圖、類圖、時序圖、協作圖等九種。設計模式中經常會用到的是類圖。類是面向對象系統組織結構的核心,類可以說是對一組具有相同屬性、操作、關系和語義的對象的抽象。在UML中,類使用帶有分隔線的矩形表示,它包含名稱部分(Name)、屬性部分(Attribute)和操作部分(Operation)。

其中屬性的表現形式是[可見性] 屬性名:類型 [=默認值]。操作的表現形式是:[可見性] 名稱(參數列表)[:返回類型]

詳細見下圖。

1.類圖基礎屬性

+表示public
-表示private  
#表示protected
~表示default,也就是包權限  
_下划線表示static  
斜體表示抽象

2.類之間關系

在UML類圖中,常見的有以下幾種關系: 
泛化(Generalization):帶空心三角箭頭的實線來表示,箭頭由子類指向父類
實現(Realization):帶空心的三角箭頭的虛線來表示,箭頭從實現類指向接口
關聯(Association):分為雙向關聯和單向關聯,其中,雙向關聯可以用帶兩個箭頭或者沒有箭頭的實線來表示,單向關聯用帶一個箭頭的實線來表示,箭頭從使用類指向被關聯的類,還可以再關聯線的兩端標注角色名,補充說明它們的角色。
聚合(Aggregation),用帶空心菱形的實線表示,菱形指向整體
組合(Composition):用帶實心菱形的實線來表示,菱形指向整體。
依賴(Dependency):使用帶箭頭的虛線表示,箭頭從使用類指向被依賴的類
下圖為類之間的關系在UML中的圖形表達式:

2.1泛化

泛化(Generalization)表示類與類之間的繼承關系,接口與接口之間的繼承關系,或類對接口的實現關系
(1)繼承
介紹:
繼承表示是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,並可以增加它自己的新功能的能力。
表示方法:
繼承使用空心三角形+實線表示。
示例:
鳥類繼承抽象類動物
(2)實現
實現表示一個class類實現interface接口(可以是多個)的功能。
表示方法:
使用空心三角形+虛線表示
比如:大雁需要飛行,就要實現飛()接口
 

2.2依賴

對於兩個相對獨立的對象,當一個對象負責構造另一個對象的實例,或者依賴另一個對象的服務時,這兩個對象之間主要體現為依賴關系。
表示方法:
依賴關系用虛線箭頭表示。
示例:
動物依賴氧氣和水。調用新陳代謝方法需要氧氣類與水類的實例作為參數