UML類圖:六大關係(泛化,實現,依賴,關聯,聚合,組合)
UML類圖
使用UML類圖,我們可以表示出類的靜態內容以及它們之間的關係。在類圖中,我們可以顯示出類的成員變數和成員函式,以及類之間的繼承和引用關係。簡而言之,我們可以描繪出類之間所有原始碼級的依賴關係。 在UML中一個類表示為如下圖:
類圖中變數和函式名前面的符號。短橫線(-)表示private;井號(#)表示protected;加號(+)表示public; 變數和函式引數的型別顯示在變數和引數後面的冒號之後。同樣,函式的返回值顯示在函式後面的冒號之後。
=====================================================================================================
UML中類的主要關係有:依賴、關聯、聚合、組合、泛化(繼承/實現)。
1.依賴:
在UML中,依賴的圖形表示是虛線+箭頭,箭頭指向被依賴的類,在程式程式碼中,具有依賴關係的類常常被宣告為成員函式的引數,而不宣告為類的成員變數。如下圖:
2.關聯:
在UML中,關聯的圖形表示是實線+箭頭(如果沒有加箭頭,則是雙向關聯),箭頭指向被關聯的類,在程式程式碼中,具有關聯關係的類常常被宣告為類的引用型別的成員變數。如下圖:
=================================================================================
3.聚合:
在UML中,聚合的圖形表示是空心菱形+實線+箭頭,箭頭指向被擁有的類,聚合是關聯的一種特殊形式,暗含整體/部分關係,但是對方卻不是唯一屬於自己的那種關係。UML為我們提供了一個非常簡單的關於聚集的硬性規定:整體不能屬於其組成部分。如下圖:
例如:Wheel類扮演wheels角色, 聚合4個到Car物件裡面去,空心的菱形表示Wheel物件並不隨Car的建立而建立,銷燬而銷燬.
4.組合:
在UML中,聚合的圖形表示是實心菱形+實線+箭頭,箭頭指向被擁有的類,UML中的組合關係是指兩個類之間有嚴格的所屬關係,一般是整體和部分的關係,而且對方是唯一屬於自己的那種關係。
例如:意義和上面類似, 唯一不同的是,實心菱形表示Department物件隨Company物件的建立而建立,銷燬而銷燬.
===========================================================================
5.泛化(繼承):
UML中的所有箭頭都指向原始碼依賴的方向,因此,箭頭指向基類。在UML中使用箭頭時要非常的小心,如果畫箭頭時比較粗心那麼就可能難以分辨是繼承還是關聯,為了清楚起見,總是把繼承關係畫成縱向的,關聯畫成橫向的。如下圖:
在介面繼承關係稱為實現,連線線使用虛線,如下圖:
對於繼承、實現這兩種關係沒多少疑問,他們體現的是一種類與類、或者類與介面間的縱向關係;其他的四者關係則體現的是類與類、或者類與介面間的引用、橫向關係,是比較難區分的,有很多事物間的關係要想準備定位是很難的,前面也提到,這幾種關係都是語義級別的,所以從程式碼層面並不能完全區分各種關係;但總的來說,後幾種關係所表現的強弱程度依次為:組合>聚合>關聯>依賴。