1. 程式人生 > >用visio畫UML類圖

用visio畫UML類圖

繼承關係

繼承關係是最容易理解的關係。畫成圖的話就像下面這樣。面向物件的說法就是is-a關係。也就是說Class2 is a Class1。在C++中我們說Class2是Class1的派生類,或者說Class1是Class2的基類。

clip_image002


聚集和組成

從容易理解的關係說起.經常有一個類是另一個類的資料成員的情況。在UML中表現為,聚集(aggregation)和組成(composition)。

clip_image004clip_image005

從 圖上來看,這兩種關係都表現為一端是菱形的直線。其中有菱形的一端是整體,另外一端是部分。區別就是菱形是空心還是實心的。從C++程式來看的話,如果圖 畫成實心菱形的話,Class1就要負責Class2的建立和銷燬。更準確的說,就是如果Class1不存在了,Class2也一定不存在。而組成 (Composition)關係是指,如果在Class1的物件銷燬的時候,比如在解構函式中沒有將資料成員銷燬的程式碼,那麼這種關係就是組成 (Composition)關係。當然,銷燬資料成員的程式碼,會有很多種。

依賴關係

依賴關係就是在一個類中使用了另一個類。例如下面的程式碼

Class1::DoSomething()

{

Class3 obj;

obj.DoClass3Work();

}

就是這樣的情況。畫成圖的話就像下面這樣。

clip_image006

簡單的說,聚集表示的是一種不可分隔的整體與部分的關係。組成則是一種相對鬆耦合的關係,整體有部分組成,但部分可獨立於整體而存在。

依賴關係則表示一種更一般的關係,只要有點關係就可以是依賴關係,比如呼叫關係