下面我就根據下面這個圖來說解一下UML類圖。java
首先,看動物那個矩形框,他就表示爲一個類(Class)。類圖分爲三層:程序員
+
表示爲public-
表示爲private#
表示爲protected典型表明是:web
<<interface>>
棒棒糖
的東西 鳥繼承動物,大雁、鴨、企鵝繼承鳥。設計模式
繼承關係用空心三角形
+實線
來表示。數組
箭頭指向父類。svg
public abstract class 動物{
}
public class 鳥 extends 動物{}
public class 大雁 extends 鳥{}
public class 鴨 extends 鳥{}
public class 企鵝 extends 鳥{}
大雁會飛翔,因此大雁這個類實現了飛翔這個接口。spa
實現接口用空心三角形
+虛線
來表示。設計
箭頭指向接口。code
interface 飛翔{
void 飛();
}
public class 大雁 implements 飛翔{
}
這兩種關係有這本質上的區別:xml
聚合
不少大雁聚在一塊兒變成雁羣,也能夠說雁羣裏有雁,因此是總體和個體之間的關係,即has-a
的關係,此時總體與部分之間是可分離的,他們能夠具備各自的生命週期。即雁羣能夠不存在了,可是孤雁仍然存在。
用空心的菱形
+實線箭頭
表示
public class 雁羣{
private 大雁[] 大雁數組名
}
組合
一隻鳥由兩個翅膀組合而成,它體現的是contains-a
關係,這種關係比聚合更強,也稱爲強聚合。他一樣體現的是總體與部分間的關係,但此時總體和部分是不可分的,總體的生命週期結束也就意味着部分的生命週期結束。好比這隻鳥死了,天然這兩個翅膀也不存在了。
用實心的菱形
+實線箭頭
表示
public class 鳥{
private 翅膀 wing;
public 鳥(){
wing = new 翅膀();
}
}
這兩種關係對比着就很好理解。
企鵝和睦候有關聯,企鵝須要「知道」氣候的變化,須要「瞭解」氣候規律,關聯是最多見的關係,當一個類「知道」另外一個類時,能夠用關聯。
表示形式:實線箭頭
。
代碼表示:
public class 企鵝{
private Climate 氣候;
}
凡是動物,生存都須要水和空氣,這種必須的需求,咱們稱之爲依賴關係。
表示形式:虛線箭頭
代碼表示:
public abstract class 動物{
public 生存(Water 水,Oxygen 空氣);
}
UML類圖在實際開發中很是常見,通常項目經理或產品經理根據實際業務來肯定開發中須要的類以及類的結構。
(以UML類圖的形式表現出來),可能有人會說爲何搞這麼麻煩,
由於肯定好類圖不是一個簡單的工做,他須要考慮不少事情,固然也會用到不少設計模式。
只有這樣,程序員開發出來的程序纔有更好的健壯性和易擴展性。