UML圖可以說是每個編程人員必須知道的知識,關於UML了相關知識可以專門開設課程進行學習,知識體系在軟件工程中很重要,特別是設計到專業的團隊開發時,這些東西顯得尤爲重要。我在這裏只是介紹UML圖中的基礎概念,讓你可以快速的看懂一張UML圖,而不必啃UML的知識體系。
首先我網上找到了一張比較好的圖(注:如有侵權請告知,僅此博文用途用,無意冒犯)
一、類圖
以圖中動物這個類爲例,類圖分爲三層,第一層是類名,如果是抽象類,則會用斜體顯示;第二層是類的特性,一般是屬性和字段,第三層是類的操作,一般是方法。在特性和操作前的符號,其中,“+”代表public,“-”代表private,“#”代表protected。
二、接口圖
接口類共有兩種表示方式,第一種如圖中的“飛翔”,它與類圖的區別主要是頂端有<<interface>>,第一行是接口名,第二行是接口方法,符號含義相同。另一種表示方式如圖中的“唐老鴨”的類似棒棒糖的表示方式,即唐老鴨實現了“講人話”的接口
三、繼承關係
繼承關係用“空心三角形+實線”表示,即子類屬於父類,如鳥屬於動物。
四、實現接口
類實現了一個接口的關係用“空心三角形+虛線”表示,即大雁能夠飛翔。
五、關聯關係
關聯關係用實線箭頭表示,即一個類需要知道另一個類的時候,就用關聯關係,如企鵝需要知道氣候,用代碼的方式來看,就是企鵝類中使用了氣候作爲屬性,代碼表示如下。
class Penguin extends Bird{
private Climate climate;
}
六、聚合關係
聚合關係用“空心的菱形+實線箭頭”表示,其中聚合表示一種弱的擁有關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分,如每一個大雁屬於一個雁羣,一個雁羣可以有多隻大雁,代碼表示如下。
class WideGooseAggregate{
private WideGoose[] arrayWideGoose;
}
七、合成(組合)關係
合成(組合)關係用“實心菱形+實線箭頭”表示,其中合成是一種強的擁有關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。即圖中鳥與其翅膀是合成關係,因爲他們是整體,生命週期一樣。另外合成關係的連線兩端還有數字“1”和數字“2”,這被稱爲基數,表明這一端可以有幾個實例,如果有無數個實例,就用“n”表示,關聯關係、聚合關係也可以有基數,代碼表示如下。
class Bird{
private Wing wing;
public Bird() {
wing = new Wing();
}
}
八、依賴關係
依賴關係用“虛線箭頭”表示,即圖中動物需要水、氧氣以及食物,代碼表示如下。
abstract class Animal{
public Metabolism(Oxygen oxygen, Waiter water) {
}
}