之因此學習UML類圖,是由於想把前面看的《設計模式之禪》再看一遍,但文章都用到了uml類圖,前面其實都只知其一;不知其二,以爲本身挺low的,因此以爲仍是得看明白才行。才瀏覽了網上幾篇博客,現將知識點整理以下:html
博客來源:設計模式
類之間的關聯關係和依賴關係.net
如圖,Person類被分爲三部分,從上到下依次是:htm
其中,權限的表示方法簡寫爲了+、#、~、-,分別表示public、protected、default、privite。對象
A指向B,表示B是A的泛化,即繼承。blog
A指向B,表示A實現了B繼承
A指向B,表示A依賴於B,即在A中使用到了B對象,與關聯關係相區分,依賴比關聯關係要弱一些,依賴關係通常是類B以參數的形式傳入類A的方法(參數依賴)、類B以局部變量的形式存在於類A的方法中(局部依賴),類A調用類B的靜態屬性或方法(靜態依賴),而關聯關係一般是指一個類對象做爲另外一個類對象的成員變量。
關聯又分爲單向關聯,雙向關聯。其中:
A指向B表示,通常用於表示B做爲成員變量在A中,是一種較強的關係。
表示A和B都做爲成員變量在對方類中,代碼中應該儘可能避免雙向關聯。
一種特殊的關聯關係,用以表示總體由部分構成的語義,但與組合關係相區分的是,其中總體和部分又相對獨立,能夠分開,如學生與選修課,選修課由學生一塊兒選修組成,可是選修課沒有了,不表明學生這個實體就失去意義了。
菱形那一邊表示總體,這裏的圖表示B由A組成,但就算沒了B,A也有本身的意義。
也是一種特殊的關聯關係,與聚合關係相似,表示的也是總體由部分構成,可是區別的是即便聚合的總體被破壞,部分則失去了意義,換句話說部分的生命週期依賴於總體的生命週期,如公司與部門,公司不存在了,則部門也不存在了。
菱形那一邊表示總體,這裏的圖表示B由A組成,也表示沒了A,B也不存在(注,與聚合關係圖對比這裏是實心的菱形)。