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