1. 程式人生 > >(轉)面向對象——UML類圖設計

(轉)面向對象——UML類圖設計

ges interface 變化 protect 兩個類 dep 規律 學習 另一個

背景:一直以來,對UMl類圖的畫法不甚理解,但是隨著學習的深入,發現熟練掌握UML類圖,能夠更好理解代碼間的邏輯性,而這也是程序設計的基礎所在,所以很有必要把UML好好掌握。

UML類圖新手入門級介紹

舉一個簡單的例子,來看這樣一副圖,其中就包括了UML類圖中的基本圖示法。

技術分享圖片

首先,看動物矩形框,它代表一個類(Class)。

類圖分三層,

第一層顯示類的名稱,如果是抽象類,則就用斜體顯示。

第二層是類的特性,通常就是字段和屬性。

第三層是類的操作,通常是方法或行為。

前面的符號,+ 表示public,- 表示private,# 表示protected。

技術分享圖片

右下角的飛翔,它表示一個接口圖,與類圖的區別主要是頂端的<<interface>>顯示。

第一行是接口名稱,第二行是接口方法。

接口還有另一種表示方法,俗稱棒棒糖表示法。

唐老鴨是能講人話的鴨子,實現了講人話的接口。

技術分享圖片

接下來的是類與類,類與接口之間的關系了。

首先註意動物、鳥、鴨、唐老鴨之間的關系符號。

它們都是繼承的關系,繼承關系用空心三角形 + 實線來表示的。

技術分享圖片

上述所列舉的幾種鳥中,大雁最能飛,讓它實現了飛翔接口。

實現接口用空心三角形 + 虛線來表示。

技術分享圖片

企鵝和氣候兩個類,企鵝是很特別的鳥,會遊不會飛。更重要的是,它與氣候有很大的關聯。我們不去討論為什麽北極沒有企鵝,為什麽它們要每年長途跋涉。總之,企鵝需要知道氣候的變化,需要了解氣候規律。

當一個類知道另一個類時,可以用關聯(association)。

關聯關系用實線箭頭來表示。

技術分享圖片

再來看大雁和雁群這兩個類,大雁是群居動物,每只大雁都是屬於一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關系。

聚合表示一種弱的擁有關系,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關系用空心的菱形 + 實線箭頭來表示。

技術分享圖片

組合(Composition)是一種強的擁有關系,體現了嚴格的部分和整體的關系,部分和整體的生命周期一樣。

在這裏鳥和其翅膀就是組合關系,因為它們是部分和整體的關系,並且翅膀和鳥的生命周期是相同的。

組合關系用實習的菱形 + 實線箭頭來表示。另外,你會註意到合成關系的連線兩端還有一個數字1和數字2,這被稱為基數。表明這一端的類可以有幾個實例,很顯然,一個鳥應該有兩只翅膀。如果一個類可能有無數個實例,則就是n來表示。關系關系、聚合關系也可以有基數的。

技術分享圖片

動物的幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣、水以及食物等。也就是說,動物依賴於氧氣和水。

他們之間是依賴關系(Dependency),用虛線箭頭來表示。

技術分享圖片

編程是一門技術,更是一門藝術,不能只滿足於寫完代碼後運行結果正確就完整,時常要考慮如何讓代碼更加簡練,更加容易維護,容易擴展和利用,只有這樣才可以真正得到提高。

寫出優雅的代碼真的是一種很爽的事情。UML類圖也不是一學就會的,需要有一個慢慢熟練的過程。所謂學無止境,其實這才是理解面向對象的開始呢。

以上內容轉自:http://blog.csdn.net/monkey_d_meng/article/details/6005764

uml類圖工具

這裏在網上查到一個在線制作的網址,上面不僅有uml,還包括如下功能

技術分享圖片

使用方法參考:http://blog.csdn.net/shulianghan/article/details/47684729

(轉)面向對象——UML類圖設計