本文是自己學(xué)習(xí)所做筆記,歡迎轉(zhuǎn)載,但請注明出處:http://blog.csdn.net/jesson20121020
之前,在工廠方法模式中畫的圖,不是很嚴(yán)格的符合UML類圖,所以今天特地看了一下UML類圖,下面內(nèi)容大部分摘自“大話設(shè)計模式”。
UML類圖圖示樣例
如上圖,矩形框就代表一個類(Class)。分三層,第一層顯示類的名稱,如果是抽象類,則就用斜體顯示。第二層是為類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法或行為。注意前面的的符號,‘+‘表示public,‘-’表示private,'#'表示protected。
接口圖有兩種表示方法,一種是和類圖一樣,用矩形框(上圖左),而與類圖的區(qū)別主要是頂端有<<interface>>顯示,第一行是接口名稱,第二行是接口方法。還有另一種表示接口的方法,俗稱棒棒糖表示法(上圖右),用圓圈表示,并且圓圈旁邊是接口名稱,而接口的方法,則在實現(xiàn)類中出現(xiàn)。
如上所示,繼承關(guān)系用空心的三角形+實線來表示。
如上,實現(xiàn)接口用空心的三角形+虛線表示。
企鵝是很特別的鳥,會游不會飛,更重要的是,它與氣候有很大關(guān)系,我們不去討論為什么北極沒有企鵝,為什么它們要每年長途跋涉??傊?,企鵝需要“知道”氣候的變化,需要“了解”氣候規(guī)律。當(dāng)一個類“知道”另一個類時,可以用關(guān)聯(lián)(association)。關(guān)聯(lián)關(guān)系用實線箭頭來表示。
大雁是群居動物,每只大雁都是屬于一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關(guān)系。聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關(guān)系用空心的菱形+實線箭頭來表示。
合成關(guān)系是一種強(qiáng)的“擁有”關(guān)系,體現(xiàn)了嚴(yán)格的部分和整體的關(guān)系,部分和整體的生命周期一樣。在這里,鳥和其翅膀就是合成關(guān)系,因為它們是部分與整體的關(guān)系,并且翅膀和鳥的生命周期是相同的。合成關(guān)系用實心的菱形+實線箭頭來表示。另外,還可以注意到連線的兩端各有一個數(shù)字“1”和“2”,這被稱為基數(shù),表明這一端的類可以有幾個實例,很顯然,一個鳥應(yīng)該有兩只翅膀,如果有一個類可能有無數(shù)個實例,則就用“n”來表示,另外,關(guān)聯(lián)關(guān)系,聚合關(guān)系也可以有基數(shù)的。
動物幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣,水及食物等。也就是說,動物依賴于氧氣和水,他們之間是依賴關(guān)系(Dependency),用虛線箭頭來表示。