uml類圖常見關(guān)系

1.泛化關(guān)系
泛化關(guān)系是繼承或?qū)崿F(xiàn)的關(guān)系,是is-a關(guān)系,具體表現(xiàn)為類與類的繼承,接口與接口的繼承,類對接口的實現(xiàn)關(guān)系。
2.依賴關(guān)系
依賴關(guān)系表示為一個類使用另一個類,這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的,一個類的變化會影響到另一個類,是use a關(guān)系,如果類A依賴于類B,那么類B可以是類A的局部變量,或類A方法的參數(shù),或靜態(tài)方法的調(diào)用。
3.關(guān)聯(lián)關(guān)系
關(guān)聯(lián)關(guān)系是一種強依賴關(guān)系,這種關(guān)系不存在依賴關(guān)系的偶然性,關(guān)系也不是臨時的,是長期的,穩(wěn)定的。雙方的關(guān)系是平等的,可以單向關(guān)聯(lián)也可以是雙向關(guān)聯(lián)。假如類A關(guān)聯(lián)了類B,則類B是類A的全局變量(注意是全局變量,再看看上面的依賴關(guān)系),大多數(shù)關(guān)聯(lián)都是單向關(guān)聯(lián),這比較容易維護,關(guān)于關(guān)聯(lián),在生活中我們常會說,類A持有類B的引用。
4.聚合關(guān)系
聚合關(guān)系是特殊的關(guān)聯(lián)關(guān)系,是一種強的關(guān)聯(lián)關(guān)系,他體現(xiàn)的是整體與部分關(guān)系,即has-a的關(guān)系,但是整體和部分是可以分離的,注意,是可以分離的。普通關(guān)聯(lián)關(guān)系的兩個類處于同一層次上,是平級的,而聚合關(guān)系的兩個類處于不同的層次,一個是整體,一個是部分。同時,是一種弱的“擁有”關(guān)系。體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的組成部分。具體表現(xiàn)為,如果A由B聚合成,表現(xiàn)為A包含有B的全局對象,但是B對象可以不在A創(chuàng)建的時刻創(chuàng)建,這句話非常有意義,它在代碼中通常體現(xiàn)成依賴注入的setter方法,即A對象可以隨時創(chuàng)建B對象,再想想這不就體現(xiàn)了整體和部分是可以分離了嗎?創(chuàng)建整體的時候可以不創(chuàng)建部分。
5.組合關(guān)系
組合關(guān)系也是特殊的關(guān)聯(lián)關(guān)系,它體現(xiàn)一種contains a(擁有)關(guān)系,這種關(guān)系是比聚合還要強,也稱為強聚合。體現(xiàn)了嚴(yán)格的整體和部分關(guān)系,兩者是不可分割的,它們的生命周期是一致的。如果A由B組成,那么A就包含B的全局變量,并在創(chuàng)建A的同時創(chuàng)建B,在代碼上我們通常是使用構(gòu)造函數(shù)進行實現(xiàn),也是依賴注入中構(gòu)造函數(shù)的實現(xiàn)。
最后,我們來總結(jié)一下,泛化就不用多少了,大家都懂的,就是繼承和實現(xiàn)接口,重點說下其它的吧,依賴,ClassB體現(xiàn)為ClassA的局部變量,我想用就用,用了就有關(guān)系,不用就沒關(guān)系;關(guān)聯(lián),ClassB體現(xiàn)為ClassA的全局變量,不管你用不用,反正你知道我的存在了,持有了我的引用。聚合,是特殊的關(guān)聯(lián)關(guān)系,用了就加強了關(guān)系,不用還是我只知道你的存在。聚合可以方便的持有多個類的引用,如使用List<>,所以當(dāng)你發(fā)現(xiàn)有List<>等集合是可以使用聚合來表示,比如觀察者模式的結(jié)構(gòu)。組合,體現(xiàn)最強的關(guān)系,比如人出身了,必定也有頭部吧,不然我真無法想象這個世界了。
相關(guān)文章
WebStorm如何調(diào)試Vue項目? webstorm配置vue開發(fā)環(huán)境指南
WebStorm 支持多種調(diào)試工具,包括瀏覽器的開發(fā)者工具,但本文主要講解的是使用 WebStorm 自帶的調(diào)試功能2025-04-15VSCode和webstorm怎么設(shè)置綠色護眼背景? 綠豆沙背景色的設(shè)置方法
護眼色一定程度能保護眼睛,緩解疲勞,VSCode和webstorm這兩款常用的軟件怎么設(shè)置護眼色呢?詳細(xì)請看下文介紹2025-04-15- WebStorm本身已經(jīng)足夠強大,但一些優(yōu)秀的插件能錦上添花,顯著提升開發(fā)效率,詳細(xì)請看下文介紹2025-04-15
如何安裝配置WebStorm? WebStorm安裝與使用全方位指南
WebStorm軟件在前端和后端開發(fā)領(lǐng)域都備受青睞,很多朋友不知道該怎么下載安裝,下面我們就來看看詳細(xì)的安裝配置教程2025-04-15Webstorm怎么配置? Webstorm入門之軟件配置教程
WebStorm是一款功能強大的集成開發(fā)環(huán)境(IDE),支持各種前端開發(fā)技術(shù),今天我們就來看看Webstorm的配置教程2025-04-15Webstorm怎么設(shè)置字體大小/背景顏色/背景圖片?
WebStorm 允許您自定義界面顏色,以創(chuàng)建更個性化和美觀的工作空間,今天我們就來看看Webstorm改變字體大小、背景顏色、設(shè)置背景圖片的方法2025-04-15- VScode上安裝PlatformIO插件能成功安裝,嘗試卸載VScode并刪除插件,這些錯誤仍然存在,下面我們就來看看這個問題的解決辦法2025-04-03
提升代碼搜索效率! VSCode里DeepSeek插件安裝與配置指南
今天我們將向大家介紹如何在Visual Studio Code中安裝并配置 DeepSeek 插件,幫助你更高效地進行代碼搜索2025-04-07提升你的編程效率! VSCode的初級使用教程超詳細(xì)版
VSCode是一款免費且開源的代碼編輯器,因其強大的功能和良好的用戶體驗而廣受歡迎,本文將詳細(xì)介紹 VSCode 的基本使用方法,并通過插圖幫助你更好地理解2025-04-03- 今天我們來聊聊如何安裝和配置VS Code,讓它成為你編程路上的得力助手,這個過程其實很簡單,只要跟著我的步驟走,你絕對能搞定2025-04-03