原本呢,是想着給你們分享一下我在學習設計模式的時候的一些方法,而後總結起來,方便你們用和我本身的查漏補缺。 可是呢!因爲我分享的文章中可能有不少的像下面的圖片同樣的UML的類圖,因此呢今天我就來給你們簡單的講一講類圖是如何看的,固然我講的不必定是很是的標準,可是基本仍是能夠用的,那麼話很少說,咱們來看看下面的這個類圖; 編程
首先咱們來看一看「動物」這個矩形框,它就是表明一個類(class)。類圖分爲三層,第一層顯示類得名稱,若是是抽象類,則用斜體表示,第二層是類的特性,一般表示的就是字段和屬性,第三層是類的操做,一般是方法或行爲。注意前面都是有加號的,固然不必定都是加號,「+」表示的是public ,"-"表示private ,"#"表示protected.;設計模式
而後咱們再看看左下角有一個飛翔,它就表示的是一個接口圖,與類圖的區別主要是頂端有《interface》顯示,第一行呢就是接口的名稱,第二行是接口方法。接口還有另外一種表示法,就是唐老鴨類實現了「講人話」的接口。;咱們來看一下面這兩個圖學習
接下來咱們來看類與類,類與接口之間的關係了,首先咱們現看看動物、鳥、鴨子、和唐老鴨之間的關係符號,這就要回到上面的圖中仔細的找找了。 其實呢他們都是集成的關係,繼承關係使用空心三角形+實現來表示的。翻譯
下面的圖中,鳥類會飛翔的中,大雁是最能飛的,我讓他實現了飛翔接口。實現接口用口信三角形+虛線來表示。 設計
咱們來看一下企鵝和睦候這兩個類,企鵝呢是很特別的的鳥,會遊不會飛,更重要的是,它和睦候有着很大的關聯。咱們就不討論爲何了,總之,企鵝須要「知道」氣候的變化,須要「瞭解」氣候的規律。當一個類「知道」另外一個類的時候,能夠用關聯(association)。關聯關係用實線箭頭表示。3d
咱們再來回到大雁身上,大雁和雁羣這兩個類,大雁是羣居動物,每一個大雁都是屬於一個雁羣,一個雁羣能夠有不少只大雁,因此他們之間就知足聚合(Aggregation)關係,聚合表示一種若的‘擁有’關係,體現的是A對象能夠包含B對象,但B對象不是A對象的一部分。聚合關係用看空心的菱形+實線箭頭表示。 cdn
合成(composition, 也有翻譯成‘組合’的)是一種強的‘擁有’關係,體現了嚴格的部分和總體的關係,部分和總體的生命週期同樣。在這裏鳥和其翅膀就是合成(組合)關係,由於他們是部分和總體的關係,而且翅膀和鳥的生命週期相同。合成關係用實心的菱形+實線箭頭表示。另外,你可能會注意到合成關係的連心兩端還有一個數字‘1’和‘2’,這被成爲技術。代表這一段的類能夠有幾個實例。很顯然,一個鳥應該有兩個翅膀。若是一個類可能有無數個實例,則用‘n’來表示。。關聯關係、聚合關係也是能夠有技術的。對象
只要是動物那麼他仍是會新陳代謝,繁殖,而動物要想有生命力,就須要氧氣、誰以及食物等。也就是說,動物依賴與氧氣和誰。他們之間是依賴關係(Dependency),用虛線箭頭來表示。blog
最後:基本上其實也就這些了,要記住,編程是一本技術,更是一門藝術,咱們每次去寫代碼以前,咱們須要構思一段時間,咱們不能知足於代碼可以運行正確就完事,時常考慮如何讓代碼變得更加簡練,更加容易維護,更加容易擴展和服用,只有這樣才能夠真正的獲得提升,並且能寫出一段優雅的代碼是一件很爽的事情,UML圖呢其實很複雜,不過咱們平常來進行簡單的設計和構思,以及實現邏輯和流程的時候很是有用,當咱們熟悉運用UML的時候咱們已經開始面向對象了。繼承