日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML模型中的关系

發(fā)布時(shí)間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML模型中的关系 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
? ? 關(guān)系這個(gè)詞在我們?nèi)粘I钪薪?jīng)常被提及到。最先想到的、最普遍的一種大概就是人和人或者人和物之間的關(guān)系了,也就是他們之間有什么聯(lián)系。在客觀世界中有很多種的關(guān)系,例如親子關(guān)系、情侶關(guān)系等,都是表示人與人之間的聯(lián)系。但是今天要分享的是計(jì)算機(jī)中,UML模型中的關(guān)系。
正文
? ? 在UML模型中存在四種關(guān)系:關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)。 這些關(guān)系都是什么意思,又該如何使用呢?接下來小編為大家分享這部分的內(nèi)容。
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)容時(shí),會有另一個(gè)網(wǎng)站的鏈接,當(dāng)我們從這個(gè)網(wǎng)站上點(diǎn)擊這個(gè)鏈接跳轉(zhuǎn)到另一個(gè)網(wǎng)站,顯示出相關(guān)的內(nèi)容。這樣的一個(gè)網(wǎng)站對象就訪問了另一個(gè)相關(guān)的網(wǎng)站對象,這兩個(gè)對象之間就可以是一種關(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)可以是兩個(gè)類之間的多種關(guān)聯(lián),可以是一個(gè)類和多個(gè)類之間的關(guān)聯(lián),也可以是類自身的關(guān)聯(lián)。類自身的關(guān)聯(lián),就是說在同一個(gè)類下,不同對象之間有連接。
? ? 在關(guān)聯(lián)中,存在兩種特殊的關(guān)系- 聚合、組合 。它們兩個(gè)之間是有很大區(qū)別的。
1.1 聚合
? ? 聚合表示的是兩個(gè)對象之間是一種整體和部分的關(guān)系。 即一個(gè)表示整體的對象由幾個(gè)表示部分的對象聚集在一起而成。它是一種松耦合,在UML模型中,用空心菱形表示。例如大米時(shí)代的學(xué)員,目前有十三期、十四期、十五期、十六期、十七期的同學(xué),由這么多期的學(xué)員聚合而成整個(gè)大米時(shí)代。大米時(shí)代與學(xué)員之間就是一種聚合關(guān)系。
1.2 組合
? ? 組合表示的是兩個(gè)對象之間是一種整體和部分的關(guān)系,但是部分類需要整體類才能存在。即表示一個(gè)整體的對象是由幾個(gè)表示部分的對象組合在一起而成。它是一種緊耦合,在UML模型中,用實(shí)心菱形表示。例如組裝而成的小汽車,一輛完好的能正常行駛的小汽車,由發(fā)動機(jī)提供動力、由底盤做支撐、由車身承載等,小汽車中的每一組成部分都是必要的,不同功能的零件組合而成一輛能正常行駛的小汽車,零件與汽車之間構(gòu)成了一個(gè)組合的關(guān)系。

2、依賴
? ? 依賴描述兩個(gè)模型元素(類等)之間的使用關(guān)系。 其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素不是獨(dú)立的,它依賴于獨(dú)立的模型元素存在。若獨(dú)立的模型元素的規(guī)格發(fā)生變化,會影響到另一個(gè)依賴于它的模型元素;但反之未必。在UML中,依賴關(guān)系用一條帶箭頭的虛線來表示,箭頭指向被依賴的一方。
? ? 與關(guān)聯(lián)關(guān)系的區(qū)別為對象間表現(xiàn)非固定關(guān)系。比如我們使用的手機(jī)以及給手機(jī)充電的充電器。手機(jī)依賴于充電器,一般情況我們都會選用與手機(jī)相匹配的原裝充電器,如果換一個(gè)充電器可能會影響手機(jī)的充電速度或者是其他方面。在這里面,充電器是獨(dú)立的元素,手機(jī)不是獨(dú)立的元素,充電器的改變會影響手機(jī)充電的速度等方面。

3、泛化
? ? 泛化關(guān)系是一種特殊與一般之間的關(guān)系,定義了一般元素和特殊元素中間的分類關(guān)系。特殊元素(子元素)的對象可以代替一般元素(父元素)的對象。在這種關(guān)系里,子元素共享了父元素的結(jié)構(gòu)和行為。與編程語言中的繼承關(guān)系類似。在UML模型中,泛化關(guān)系用帶空心三角形的實(shí)線表示。


4、實(shí)現(xiàn)
? ? 實(shí)現(xiàn)關(guān)系是類元之間的語義關(guān)系,在該關(guān)系中一個(gè)類元描述了另一個(gè)類元保證實(shí)現(xiàn)的契約。在UML模型中,實(shí)現(xiàn)關(guān)系用帶空心三角形的虛線表示。
? ? 簡單來說,實(shí)現(xiàn)關(guān)系將一種模型元素(如類)與另一種模型元素(如接口)連接起來,其中接口只是行為上的說明而不是結(jié)構(gòu)或者實(shí)現(xiàn)。真正的實(shí)現(xiàn)還是由前一個(gè)模型元素來完成(接口用圓圈來表示)。
? ? 通常會在兩種地方使用實(shí)現(xiàn)關(guān)系:其一,在接口和實(shí)現(xiàn)它們的類與構(gòu)件之間;其二,在用例和實(shí)現(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)系;實(shí)現(xiàn)表示一種語義上的關(guān)系。在 UML模型中,關(guān)聯(lián)是最普遍的一種關(guān)系,建模過程中,要準(zhǔn)確定位對象之間的關(guān)系,當(dāng)用關(guān)聯(lián)的關(guān)系表示時(shí),進(jìn)一步想一想是不是可以精確到聚合關(guān)系。
結(jié)語
? ? 在有些參考書中,有關(guān)UML中關(guān)系的劃分與本文可能有一些出入,會劃分為5種關(guān)系,即把聚合關(guān)系單獨(dú)列為一類,但從整體上來說,仍沒有脫離這幾種關(guān)系。UML模型中的幾種關(guān)系分享到這里就要告一段落啦。小編也是初次學(xué)習(xí)UML建模,若分享的內(nèi)容有不妥之處,還請您能及時(shí)指出哦。
*感謝您的閱讀,希望對您能有所幫助*

總結(jié)

以上是生活随笔為你收集整理的UML模型中的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。