提供網(wǎng)站建設(shè)報(bào)客源軟件哪個(gè)最好
目錄
- UML概述
- UML語(yǔ)義
- UML表示法
- 六種常用關(guān)系標(biāo)識(shí)方法
- 泛化
- 實(shí)現(xiàn)
- 依賴(lài)
- 關(guān)聯(lián)
- 聚合
- 組合
本文參考文章
https://blog.csdn.net/qq_25091281/article/details/123801862
UML概述
UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的、標(biāo)準(zhǔn)的、可視化的建模語(yǔ)言。適用于描述以用例為驅(qū)動(dòng),以體系結(jié)構(gòu)為中心的軟件設(shè)計(jì)的全過(guò)程。
UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。
UML語(yǔ)義
UML對(duì)語(yǔ)義的描述使開(kāi)發(fā)者能在語(yǔ)義上取得一致認(rèn)識(shí),消除了因人而異的表達(dá)方法所造成的影響。
UML表示法
UML表示法定義UML符號(hào)的表示方法,為開(kāi)發(fā)者或開(kāi)發(fā)工具使用這些圖形符號(hào)和文本語(yǔ)法,為系統(tǒng)建模提供了標(biāo)準(zhǔn)。
六種常用關(guān)系標(biāo)識(shí)方法
其中,在系統(tǒng)設(shè)計(jì)時(shí),事物間不同關(guān)系的描述使用不同的箭頭,如果不能正確理解,實(shí)現(xiàn)階段可能會(huì)失之毫厘謬以千里,下面就介紹一下6種常用的關(guān)系及箭頭表示方法。
泛化
概念:泛化是一種一般與特殊、一般與具體之間關(guān)系的描述,具體描述建立在一般描述的基礎(chǔ)之上,并對(duì)其進(jìn)行了擴(kuò)展,一般用來(lái)表示繼承的關(guān)系。
表示方法:用實(shí)線空心三角箭頭表示,如下圖:
實(shí)現(xiàn)
概念:實(shí)現(xiàn)是一種類(lèi)與接口的關(guān)系,表示類(lèi)是接口所有特征和行為的實(shí)現(xiàn),在程序中一般通過(guò)類(lèi)實(shí)現(xiàn)接口來(lái)描述。
表示方法:空心三角形箭頭的虛線,實(shí)現(xiàn)類(lèi)指向接口,如下圖:
依賴(lài)
概念:是一種使用的關(guān)系,即一個(gè)類(lèi)的實(shí)現(xiàn)需要另一個(gè)類(lèi)的協(xié)助。如方法參數(shù)需要傳入另一個(gè)類(lèi)的對(duì)象,就表示依賴(lài)這個(gè)類(lèi)。
表示方法:虛線箭頭,類(lèi)A指向類(lèi)B,即A依賴(lài)B,如下圖:
關(guān)聯(lián)
概念:表示類(lèi)與類(lèi)之間的聯(lián)接,它使一個(gè)類(lèi)知道另一個(gè)類(lèi)的屬性和方法,這種關(guān)系比依賴(lài)更強(qiáng)、不存在依賴(lài)關(guān)系的偶然性、關(guān)系也不是臨時(shí)性的,一般是長(zhǎng)期性的。程序中一個(gè)類(lèi)的全局變量引用了另一個(gè)類(lèi),就表示關(guān)聯(lián)了這個(gè)類(lèi),關(guān)聯(lián)關(guān)系分為單項(xiàng)關(guān)聯(lián)和雙向關(guān)聯(lián)。在Java中,單向關(guān)聯(lián)表現(xiàn)為:類(lèi)A當(dāng)中使用了類(lèi)B,其中B作為類(lèi)A的成員變量。雙向關(guān)聯(lián)表現(xiàn)為:類(lèi)A當(dāng)中使用了類(lèi)B作為成員變量;同時(shí)類(lèi)B中也使用了類(lèi)A作為成員變量。
表示方法:實(shí)線箭頭,類(lèi)A指向類(lèi)B,即A關(guān)聯(lián)B,消費(fèi)者中關(guān)聯(lián)了若干產(chǎn)品,如下圖:
聚合
概念:聚合是關(guān)聯(lián)關(guān)系的一種特例,是強(qiáng)的關(guān)聯(lián)關(guān)系。聚合是“整體-個(gè)體”之間的關(guān)系,即has-a的關(guān)系,整體與個(gè)體可以具有各自的生命周期,部分可以屬于多個(gè)整體對(duì)象,也可以為多個(gè)整體對(duì)象共享。程序中聚合和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分。
表示方法:尾部為空心菱形的實(shí)線箭頭(也可以沒(méi)箭頭),車(chē)輪和大燈都屬于汽車(chē),如下圖:
組合
概念:組合也是關(guān)聯(lián)關(guān)系的一種特例。組合是一種“整體-部分”的關(guān)系,即contains-a的關(guān)系,比聚合更強(qiáng)。部分與整體的生命周期一致,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束,組合關(guān)系不能共享。程序中組合和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分。
表示方法:尾部為實(shí)心菱形的實(shí)現(xiàn)箭頭(也可以沒(méi)箭頭),手,腿、頭都屬于人,生命周期一致,如下圖:
各種關(guān)系的強(qiáng)弱順序:
泛化= 實(shí)現(xiàn)> 組合> 聚合> 關(guān)聯(lián)> 依賴(lài)。關(guān)系越弱,耦合越低,內(nèi)聚越強(qiáng)。