UML類圖知識整理

之因此學習UML類圖,是由於想把前面看的《設計模式之禪》再看一遍,但文章都用到了uml類圖,前面其實都只知其一;不知其二,以爲本身挺low的,因此以爲仍是得看明白才行。才瀏覽了網上幾篇博客,現將知識點整理以下:html

博客來源:設計模式

Java 大白話講解設計模式之 -- UML類圖學習

類之間的關聯關係和依賴關係.net

依賴、關聯、聚合、組合設計

看懂UML類圖和時序圖3d

1、UML類圖中一個類的基本表示

如圖,Person類被分爲三部分,從上到下依次是:htm

  • 類名
  • 成員變量,表示爲:權限 屬性名:類型 [ = 默認值 ]
  • 方法,表示爲:權限 方法名稱(參數列表) [ : 返回類型]

其中,權限的表示方法簡寫爲了+、#、~、-,分別表示public、protected、default、privite。對象

2、UML圖中的關係表示

(一)泛化(繼承)關係

A指向B,表示B是A的泛化,即繼承。blog

(二)實現關係

A指向B,表示A實現了B繼承

(三)依賴關係

A指向B,表示A依賴於B,即在A中使用到了B對象,與關聯關係相區分,依賴比關聯關係要弱一些,依賴關係通常是類B以參數的形式傳入類A的方法(參數依賴)、類B以局部變量的形式存在於類A的方法中(局部依賴),類A調用類B的靜態屬性或方法(靜態依賴),而關聯關係一般是指一個類對象做爲另外一個類對象的成員變量。

(四)關聯關係

關聯又分爲單向關聯,雙向關聯。其中:

1.單向關聯

A指向B表示,通常用於表示B做爲成員變量在A中,是一種較強的關係。

2.雙向關聯

表示A和B都做爲成員變量在對方類中,代碼中應該儘可能避免雙向關聯。

(五)特殊的關聯關係

1.聚合關係

一種特殊的關聯關係,用以表示總體由部分構成的語義,但與組合關係相區分的是,其中總體和部分又相對獨立,能夠分開,如學生與選修課,選修課由學生一塊兒選修組成,可是選修課沒有了,不表明學生這個實體就失去意義了。

菱形那一邊表示總體,這裏的圖表示B由A組成,但就算沒了B,A也有本身的意義。

2.組合關係

也是一種特殊的關聯關係,與聚合關係相似,表示的也是總體由部分構成,可是區別的是即便聚合的總體被破壞,部分則失去了意義,換句話說部分的生命週期依賴於總體的生命週期,如公司與部門,公司不存在了,則部門也不存在了。

菱形那一邊表示總體,這裏的圖表示B由A組成,也表示沒了A,B也不存在(注,與聚合關係圖對比這裏是實心的菱形)。

相關文章
相關標籤/搜索