0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UML類圖之間的關(guān)系

h1654155282.3538 ? 來源:陳翠 ? 2019-09-25 09:57 ? 次閱讀

UML中描述對象和類之間相互關(guān)系的方式包括:依賴(Dependency),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),泛化(Generalization),實現(xiàn)(Realization)等。

依賴(Dependency):元素A的變化會影響元素B,但反之不成立,那么B和A的關(guān)系是依賴關(guān)系,B依賴A;類屬關(guān)系和實現(xiàn)關(guān)系在語義上講也是依賴關(guān)系,但由于其有更特殊的用途,所以被單獨描述。uml中用帶箭頭的虛線表示Dependency關(guān)系,箭頭指向被依賴元素。

泛化(Generalization):通常所說的繼承(特殊個體iskindof一般個體)關(guān)系,不必多解釋了。uml中用帶空心箭頭的實線線表示Generalization關(guān)系,箭頭指向一般個體。

實現(xiàn)(Realize):元素A定義一個約定,元素B實現(xiàn)這個約定,則B和A的關(guān)系是Realize,BrealizeA。這個關(guān)系最常用于接口。uml中用空心箭頭和虛線表示Realize關(guān)系,箭頭指向定義約定的元素。

關(guān)聯(lián)(Association):元素間的結(jié)構(gòu)化關(guān)系,是一種弱關(guān)系,被關(guān)聯(lián)的元素間通??梢员华毩⒌目紤]。uml中用實線表示Association關(guān)系,箭頭指向被依賴元素。

聚合(Aggregation):關(guān)聯(lián)關(guān)系的一種特例,表示部分和整體(整體hasa部分)的關(guān)系。uml中用帶空心菱形頭的實線表示Aggregation關(guān)系,菱形頭指向整體。

組合(Composition):組合是聚合關(guān)系的變種,表示元素間更強的組合關(guān)系。如果是組合關(guān)系,如果整體被破壞則個體一定會被破壞,而聚合的個體則可能是被多個整體所共享的,不一定會隨著某個整體的破壞而被破壞。uml中用帶實心菱形頭的實線表示Composition關(guān)系,菱形頭指向整體。

其中依賴(Dependency)的關(guān)系最弱,而關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition)表示的關(guān)系依次增強。換言之關(guān)聯(lián),聚合,組合都是依賴關(guān)系的一種,聚合是表明對象之間的整體與部分關(guān)系的關(guān)聯(lián),而組合是表明整體與部分之間有相同生命周期關(guān)系的聚合。

而關(guān)聯(lián)與依賴的關(guān)系用一句話概括下來就是,依賴描述了對象之間的調(diào)用關(guān)系,而關(guān)聯(lián)描述了對象之間的結(jié)構(gòu)關(guān)系。

UML類圖之間的關(guān)系

1、泛化(Generalization)

【泛化關(guān)系】:是一種繼承關(guān)系,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。

【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

2、實現(xiàn)(Realization)

【實現(xiàn)關(guān)系】:是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實現(xiàn)。

【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口

3、關(guān)聯(lián)(Association)

【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法;如:老師與學(xué)生,丈夫與妻子關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者

上圖中,老師與學(xué)生是雙向關(guān)聯(lián),老師有多名學(xué)生,學(xué)生也可能有多名老師。但學(xué)生與某課程間的關(guān)系為單向關(guān)聯(lián),一名學(xué)生可能要上多門課程,課程是個抽象的東西他不擁有學(xué)生。

下圖為自身關(guān)聯(lián):

4、聚合(Aggregation)

【聚合關(guān)系】:是整體與部分的關(guān)系,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關(guān)系,輪胎離開車仍然可以存在。

聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語法上無法區(qū)分,必須考察具體的邏輯關(guān)系。

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶空心菱形的實心線,菱形指向整體

5、組合(Composition)

【組合關(guān)系】:是整體與部分的關(guān)系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關(guān)系,沒有公司就不存在部門。

組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對象負(fù)責(zé)代表部分的對象的生命周期。

【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶實心菱形的實線,菱形指向整體

6、依賴(Dependency)

【依賴關(guān)系】:是一種使用的關(guān)系,即一個類的實現(xiàn)需要另一個類的協(xié)助,所以要盡量不使用雙向的互相依賴。

【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用

【箭頭及指向】:帶箭頭的虛線,指向被使用者

各種關(guān)系的強弱順序:

泛化=實現(xiàn)》組合》聚合》關(guān)聯(lián)》依賴

下面這張UML圖,比較形象地展示了各種類圖關(guān)系:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • UML
    UML
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    30821
  • UML建模
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6795
收藏 人收藏

    評論

    相關(guān)推薦

    UML詳解

    UML
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月14日 10:12:47

    UML狀態(tài)和Petri網(wǎng)絡(luò)在測試用例生成的應(yīng)用

    【作者】:陳志德;曾凡平;【來源】:《小型微型計算機系統(tǒng)》2010年03期【摘要】:分析和研究UML狀態(tài)、擴展?fàn)顟B(tài)機和Petri網(wǎng)在測試用例生成的特點,提出結(jié)合三者優(yōu)勢的測試用例
    發(fā)表于 04-24 09:52

    編寫電視TV,UML和說明

    編寫電視TV,UML和說明如下:注意:(1)電視只有在打開的狀態(tài)下才可以調(diào)音量和設(shè)置新頻道;(2)設(shè)置音量和頻道時,應(yīng)該在規(guī)定的范圍,如音量值為1-7。解題要求:編寫測試
    發(fā)表于 10-29 06:09

    一文解析sal socket與其他socket之間關(guān)系

    1、sal socket與其他socket的關(guān)系結(jié)合結(jié)構(gòu)體之間的引用關(guān)系,與下圖看;從 uml 對象關(guān)
    發(fā)表于 06-28 17:50

    基于UML的考試管理系統(tǒng)設(shè)計

    文中著重解決UML在完成各階段任務(wù)中的應(yīng)用、分析設(shè)計流程等問題,就與時序兩者設(shè)計次序進(jìn)行探討。UML有利于各類人員
    發(fā)表于 12-22 17:14 ?35次下載
    基于<b class='flag-5'>UML</b>的考試管理系統(tǒng)設(shè)計

    時序關(guān)系

    和時序是在軟件系統(tǒng)設(shè)計中直接和程序代碼相關(guān)聯(lián)的,準(zhǔn)確地說,程序代碼是由直接產(chǎn)生,而時
    發(fā)表于 10-29 11:21 ?6672次閱讀
    時序<b class='flag-5'>圖</b>和<b class='flag-5'>類</b><b class='flag-5'>圖</b>的<b class='flag-5'>關(guān)系</b>

    Uml建模三種模型_uml建模的步驟

    描述系統(tǒng)內(nèi)部對象及其關(guān)系的靜態(tài)結(jié)構(gòu)。模型由構(gòu)建,圖中節(jié)點表示,
    的頭像 發(fā)表于 09-25 09:51 ?1.6w次閱讀
    <b class='flag-5'>Uml</b>建模三種模型_<b class='flag-5'>uml</b>建模的步驟

    什么是UML?常見的UML工具有哪些?

    UML是統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言。是對軟件設(shè)計開發(fā)過程可視化建模的一種語言。多應(yīng)用在一些軟件系統(tǒng)工程上,有時在應(yīng)用在機械系統(tǒng)和業(yè)務(wù)流程上有所應(yīng)用。這種模型通常以圖表方式呈現(xiàn)。 UML狀態(tài)圖
    的頭像 發(fā)表于 06-22 14:10 ?4460次閱讀
    什么是<b class='flag-5'>UML</b><b class='flag-5'>圖</b>?常見的<b class='flag-5'>UML</b><b class='flag-5'>圖</b>工具有哪些?

    UML簡介與詳解

    本篇介紹了UML的基礎(chǔ)知識,包括2種和6種關(guān)系,并通過visio軟件,演示如何畫出一個UML
    的頭像 發(fā)表于 05-05 09:07 ?3720次閱讀
    <b class='flag-5'>UML</b>簡介與<b class='flag-5'>類</b><b class='flag-5'>圖</b>詳解

    利用UML()表示之間的6種關(guān)系

    在java以及其他的面向?qū)ο笤O(shè)計模式中,之間主要有6種關(guān)系,他們分別是:依賴、關(guān)聯(lián)、聚合、組合、繼承、實現(xiàn)。他們的耦合度依次增強
    的頭像 發(fā)表于 05-05 10:18 ?1657次閱讀
    利用<b class='flag-5'>UML</b>(<b class='flag-5'>圖</b>)表示<b class='flag-5'>類</b><b class='flag-5'>之間</b>的6種<b class='flag-5'>關(guān)系</b>

    UML相關(guān)基本知識介紹

    UML - Unified modeling language UML (統(tǒng)一建模語言),是一種用于軟件系統(tǒng)分析和設(shè)計的語 言工具, 用于幫助軟件開發(fā)人員進(jìn)行思考和記錄思路的結(jié)果。簡單說,UML
    的頭像 發(fā)表于 05-05 10:22 ?568次閱讀
    <b class='flag-5'>UML</b>相關(guān)基本知識介紹

    UML學(xué)習(xí)筆記

    ,表示之間的聯(lián)系,如關(guān)聯(lián)、依賴、聚合等,也包括的屬性和操作,描述的是一種靜態(tài)
    的頭像 發(fā)表于 05-05 10:26 ?614次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>圖</b>學(xué)習(xí)筆記

    UML圖符號等詳細(xì)介紹

    UML中描述對象和之間相互關(guān)系的方式包括:依賴(Dependency),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),泛化(Gene
    的頭像 發(fā)表于 05-05 10:41 ?939次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>類</b>圖符號等詳細(xì)介紹

    解析UML和時序

    這里不會將UML的各種元素都提到,我只想講講圖中各個之間關(guān)系; 能看懂圖中各個
    的頭像 發(fā)表于 05-05 11:03 ?589次閱讀
    解析<b class='flag-5'>UML</b><b class='flag-5'>類</b><b class='flag-5'>圖</b>和時序<b class='flag-5'>圖</b>

    UML時序詳解

    本篇介紹了UML時序的基礎(chǔ)知識,并通過visio繪制一個物聯(lián)網(wǎng)設(shè)備WIFI配網(wǎng)的UML時序實例,來介紹UML時序
    的頭像 發(fā)表于 05-16 09:09 ?1967次閱讀
    <b class='flag-5'>UML</b>時序<b class='flag-5'>圖</b>詳解