-
-
1. 首先看“動物”矩形框,它代表一個類。該類圖分為三層,第一層顯示類的名稱,如果是抽象類就要用斜體顯示。第二層是類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法和行為。
-
注意前面的符號,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.
-
2. “飛翔”矩形框表示一個接口圖,它與類圖的區(qū)別主要是頂端有《interface》顯示,第一行是接口名稱,第二行是接口方法。接口還有另一種表示方法,俗稱棒棒糖表示法,就是唐老鴨類實現(xiàn)了“講人話”的接口。
-
-
interface IFly interface Ilanguage
{ {
void Fly(); void Speak();
} }
-
3. 動物,鳥,鴨,唐老鴨他們之間都是繼承的關(guān)系,繼承關(guān)系用空心三角形+實現(xiàn)來表示。
-
-
4.“大雁”實現(xiàn)了“飛翔”接口。實現(xiàn)接口用空心三角形+虛線來表示。(注:下面的圖中應(yīng)為空心三角形)
-
-
class Bird:Animal class WideGoose:IFly
{ {
//繼承動物類 //實現(xiàn)飛翔接口
} }
-
5. 企鵝與氣候有很大的關(guān)系,企鵝需要“知道”氣候的變化,需要“了解”氣候規(guī)律。當一個類“知道”另一個類時,可以用關(guān)聯(lián)(association)關(guān)系。關(guān)聯(lián)關(guān)系用實線箭頭來表示。
-
-
-
class Penguin :Bird
{
private Climate climate;//在企鵝Penguin中,引用到氣候Climate對象
}
-
6. “大雁”和“雁群”這兩個類。大雁是群居動物,每只大雁都屬于一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關(guān)系。聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關(guān)系用空心的菱形+ 實線箭頭表示。
-
-
-
class WideGooseAggregate
{
private WideGoose[] arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}
-
7. “鳥”和“翅膀”這兩個類。鳥和翅膀似整體和部分的關(guān)系,并且翅膀和鳥的生命周期是相同的,在這里鳥和其翅膀就是合成關(guān)系。合成(composition)是一種強的“擁有”關(guān)系,體現(xiàn)了嚴格的部分和整體的關(guān)系,部分和整體的生命周期一樣。合成關(guān)系用實心的的菱形+實線箭頭來表示。另外,合成關(guān)系的連線兩端還有一個數(shù)字“1”和數(shù)字“2”,,這被稱為基數(shù)。表明這一端的類可以有幾個實例,很顯然,一個鳥應(yīng)該有兩支翅膀。如果一個類可能有無數(shù)個實例,則就用“n”來表示。關(guān)聯(lián)關(guān)系,聚合關(guān)系也可以有基數(shù)的。