一、什么是UML?
UML中文名為統(tǒng)一建模語言(Unified Modeling Language)。UML是一種開發(fā)的方法,用于說明、可視化、構(gòu)建和編寫一個正在開發(fā)的、面向?qū)ο蟮摹④浖芗到y(tǒng)的開放方法。
二、UML中類之間的關(guān)系####
以下用實際的例子說明一下UML中類之間的關(guān)系:
- 實現(xiàn)關(guān)系
在UML圖中以空心三角+虛線來表示:

在面向?qū)ο蟮木幊讨?,一般會定義基類和繼承類?;惒荒軐崿F(xiàn)方法,可以理解為傀儡類,“傀儡類”有基礎(chǔ)的屬性。實際工作的是實現(xiàn)類,即子類。在Java中可以使用abstract 定義“傀儡類”或者使用interface 接口。
Person是一個抽象類,人可以是學生、科學家、記者等等。學生與Person之間的關(guān)系便是實現(xiàn)關(guān)系。
-
泛化關(guān)系
以空心三角+實線表示:
泛化關(guān)系
學生是一個可以是小學生、初中生、大學生等。學生是一個泛化的類,那么小學生與學生之間的關(guān)系便是泛化關(guān)系。
-
組合關(guān)系
以實心菱形+實線表示:
組合關(guān)系
一個企業(yè)由多個部門,企業(yè)與部門有著強關(guān)系,如果企業(yè)倒閉了,那么部門隨之也就沒有了。組合關(guān)系可以理解為具有強依賴的聚合關(guān)系。
-
聚合關(guān)系
以空心菱形+實線表示:
聚合關(guān)系
聚合關(guān)系不是強依賴關(guān)系,比如一個企業(yè)的部門沒有了,但是企業(yè)的職員還是職員,并不會因為部門的撤銷而改變身份。
-
依賴關(guān)系
以虛線+箭頭表示:
依賴關(guān)系
依賴關(guān)系通常在運行時產(chǎn)生,并且是臨時性關(guān)系。比如構(gòu)造函數(shù)中的參數(shù)。
- 關(guān)聯(lián)關(guān)系
以實線+箭頭表示:

關(guān)聯(lián)關(guān)系為靜態(tài)關(guān)系,與運行時無關(guān)。一般是常識性的強關(guān)系。學生與身份證之間便是關(guān)聯(lián)關(guān)系。



