UML模型中的关系
| 前言 |
| 正文 |
1、關(guān)聯(lián)
? ? 關(guān)聯(lián)是一種結(jié)構(gòu)化的關(guān)系,是指一種對象和另一種對象之間有聯(lián)系,是關(guān)系中最普遍的關(guān)系。在UML圖中,普通的關(guān)聯(lián)關(guān)系用直線表示。
? ? 比如說我們在瀏覽網(wǎng)頁內(nèi)容時,會有另一個網(wǎng)站的鏈接,當(dāng)我們從這個網(wǎng)站上點擊這個鏈接跳轉(zhuǎn)到另一個網(wǎng)站,顯示出相關(guān)的內(nèi)容。這樣的一個網(wǎng)站對象就訪問了另一個相關(guān)的網(wǎng)站對象,這兩個對象之間就可以是一種關(guān)聯(lián)的關(guān)系。或者公司和員工之間的關(guān)系,也可以看做是一種關(guān)聯(lián)的關(guān)系。
? ? 關(guān)聯(lián)可以有方向,表示該關(guān)聯(lián)在某方面被使用。分為單向關(guān)聯(lián)和雙向關(guān)聯(lián)。 ? ? 此外,UML模型中的關(guān)聯(lián)可以是兩個類之間的多種關(guān)聯(lián),可以是一個類和多個類之間的關(guān)聯(lián),也可以是類自身的關(guān)聯(lián)。類自身的關(guān)聯(lián),就是說在同一個類下,不同對象之間有連接。
? ? 在關(guān)聯(lián)中,存在兩種特殊的關(guān)系- 聚合、組合 。它們兩個之間是有很大區(qū)別的。
1.1 聚合
? ? 聚合表示的是兩個對象之間是一種整體和部分的關(guān)系。 即一個表示整體的對象由幾個表示部分的對象聚集在一起而成。它是一種松耦合,在UML模型中,用空心菱形表示。例如大米時代的學(xué)員,目前有十三期、十四期、十五期、十六期、十七期的同學(xué),由這么多期的學(xué)員聚合而成整個大米時代。大米時代與學(xué)員之間就是一種聚合關(guān)系。
1.2 組合
? ? 組合表示的是兩個對象之間是一種整體和部分的關(guān)系,但是部分類需要整體類才能存在。即表示一個整體的對象是由幾個表示部分的對象組合在一起而成。它是一種緊耦合,在UML模型中,用實心菱形表示。例如組裝而成的小汽車,一輛完好的能正常行駛的小汽車,由發(fā)動機提供動力、由底盤做支撐、由車身承載等,小汽車中的每一組成部分都是必要的,不同功能的零件組合而成一輛能正常行駛的小汽車,零件與汽車之間構(gòu)成了一個組合的關(guān)系。
2、依賴
? ? 依賴描述兩個模型元素(類等)之間的使用關(guān)系。 其中一個模型元素是獨立的,另一個模型元素不是獨立的,它依賴于獨立的模型元素存在。若獨立的模型元素的規(guī)格發(fā)生變化,會影響到另一個依賴于它的模型元素;但反之未必。在UML中,依賴關(guān)系用一條帶箭頭的虛線來表示,箭頭指向被依賴的一方。
? ? 與關(guān)聯(lián)關(guān)系的區(qū)別為對象間表現(xiàn)非固定關(guān)系。比如我們使用的手機以及給手機充電的充電器。手機依賴于充電器,一般情況我們都會選用與手機相匹配的原裝充電器,如果換一個充電器可能會影響手機的充電速度或者是其他方面。在這里面,充電器是獨立的元素,手機不是獨立的元素,充電器的改變會影響手機充電的速度等方面。
3、泛化
? ? 泛化關(guān)系是一種特殊與一般之間的關(guān)系,定義了一般元素和特殊元素中間的分類關(guān)系。特殊元素(子元素)的對象可以代替一般元素(父元素)的對象。在這種關(guān)系里,子元素共享了父元素的結(jié)構(gòu)和行為。與編程語言中的繼承關(guān)系類似。在UML模型中,泛化關(guān)系用帶空心三角形的實線表示。
4、實現(xiàn)
? ? 實現(xiàn)關(guān)系是類元之間的語義關(guān)系,在該關(guān)系中一個類元描述了另一個類元保證實現(xiàn)的契約。在UML模型中,實現(xiàn)關(guān)系用帶空心三角形的虛線表示。
? ? 簡單來說,實現(xiàn)關(guān)系將一種模型元素(如類)與另一種模型元素(如接口)連接起來,其中接口只是行為上的說明而不是結(jié)構(gòu)或者實現(xiàn)。真正的實現(xiàn)還是由前一個模型元素來完成(接口用圓圈來表示)。
? ? 通常會在兩種地方使用實現(xiàn)關(guān)系:其一,在接口和實現(xiàn)它們的類與構(gòu)件之間;其二,在用例和實現(xiàn)它們的協(xié)作之間。
? ? 關(guān)聯(lián)表示對象之間的結(jié)構(gòu)關(guān)系,組合與聚合關(guān)系是關(guān)聯(lián)中的特殊關(guān)系,表示整體-部分的關(guān)系;依賴表示元素之間的使用關(guān)系;泛化表示一般-特殊之間的關(guān)系;實現(xiàn)表示一種語義上的關(guān)系。在 UML模型中,關(guān)聯(lián)是最普遍的一種關(guān)系,建模過程中,要準(zhǔn)確定位對象之間的關(guān)系,當(dāng)用關(guān)聯(lián)的關(guān)系表示時,進(jìn)一步想一想是不是可以精確到聚合關(guān)系。
| 結(jié)語 |
*感謝您的閱讀,希望對您能有所幫助*
總結(jié)
- 上一篇: 初识UML
- 下一篇: UML模型中的图-用例图