「英文時間」:UML: Unified Modeling Language n.統(tǒng)一建模語言
UML 是一種在面向?qū)ο筌浖_發(fā)中被設(shè)計來簡化軟件開發(fā)、供程序員交流的一種標(biāo)準(zhǔn)、統(tǒng)一的描述符號而已,就這樣理解就可以了花椭。
UML 中有三個組成成分炉菲,分別是事物、關(guān)系和圖默刚。比如類、接口就是事物逃魄,關(guān)系可以有繼承羡棵、實現(xiàn)以及組合等,圖就是上述的事物和關(guān)系組合的一張圖而已嗅钻。
UML 有 9 中圖皂冰,分別是:類圖、對象圖养篓、用例圖秃流、順序圖、協(xié)作圖柳弄、活動圖舶胀、狀態(tài)圖、部署關(guān)系圖碧注、組件圖嚣伐。
UML 類圖
現(xiàn)在只學(xué)習(xí) UML 中的類圖,其他暫時也用不上萍丐,這在學(xué)習(xí)設(shè)計模式的過程中用的非常廣泛轩端,以后學(xué)習(xí)設(shè)計模式的時候一定要畫標(biāo)準(zhǔn)的 UML 類圖做演示。
類圖中的事物部分有普通類逝变、抽象類和接口基茵。關(guān)系有繼承(泛化)奋构、實現(xiàn)、組合拱层、聚合弥臼、關(guān)聯(lián)、依賴六種關(guān)系根灯。如下圖例子所示:
下面分開講解類的這六種關(guān)系径缅,類之間的關(guān)系表示符號在圖中已經(jīng)有明確的展示:
- 繼承關(guān)系,這就是面向?qū)ο箢惱锩娴睦^承烙肺,但是這里用了一個泛化這個詞來描述這種繼承關(guān)系纳猪,真的讓人有點接受不了,用空心箭頭的實線表示這種關(guān)系茬高。
- 實現(xiàn)關(guān)系,就是一個類實現(xiàn)一個接口的關(guān)系假抄,用空心箭頭的虛線表示怎栽。
- 組合關(guān)系,表示部分和整體的關(guān)系宿饱,這是一種強依賴的關(guān)系熏瞄,如果整體不存在了,部分也就不存在了谬以。比如公司不存在了强饮,那么公司的部門也就不存在了。用實心菱形箭頭直線表示为黎。
- 聚合關(guān)系邮丰,同樣是表示整體和部分的關(guān)系,這是一種弱依賴關(guān)系铭乾,即便整體不存在了剪廉,部分并不會受影響。比如公司部門撤銷了炕檩,員工仍然會存在斗蒋。用空心菱形箭頭直線表示。
- 關(guān)聯(lián)關(guān)系笛质,它僅僅表示兩個事物之間有某種關(guān)系泉沾,但這種關(guān)系通常很強,比如乘客和車票的關(guān)系妇押,學(xué)生和身份證的關(guān)系跷究。用一個實直線表示。
- 依賴關(guān)系敲霍,它和關(guān)聯(lián)關(guān)系不同揭朝,是一種通常在運行時產(chǎn)生的臨時關(guān)系队贱,比如學(xué)生和自行車的關(guān)系。用一個帶箭頭的虛線表示潭袱。
總結(jié)下這六種關(guān)系:繼承關(guān)系和實現(xiàn)關(guān)系是一對的柱嫌,都用空心箭頭表示。組合關(guān)系和聚合關(guān)系是一對的屯换,都表示整體和部分的關(guān)系编丘,用菱形的直線表示。依賴關(guān)系和關(guān)聯(lián)關(guān)系是一對的彤悔,都表示事物之間的某種聯(lián)系嘉抓,只是他們表示關(guān)系的連線不是很對應(yīng)。