最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

設(shè)計(jì)原則(二)——類(lèi)與類(lèi)之間的關(guān)系

2023-07-21 11:29 作者:香草味的lollipop  | 我要投稿

類(lèi)與類(lèi)之間的六種關(guān)系:

泛化(Generalization)、實(shí)現(xiàn)(Realization)、組合(Composition)、聚合(Aggregation)、關(guān)聯(lián)(Association)、依賴(Dependency)

UML中常用符號(hào)含義:

????????+ public

????????- private

????????# protected

一、泛化(繼承)

????????繼承指的是一個(gè)類(lèi)(稱(chēng)為子類(lèi)、子接口)繼承另外的一個(gè)類(lèi)(稱(chēng)為父類(lèi)、父接口)的功能,并可以增加它自己的新功能的能力。在Java中繼承關(guān)系通過(guò)關(guān)鍵字extends明確標(biāo)識(shí),C#中通過(guò):來(lái)標(biāo)識(shí)繼承。在UML類(lèi)圖設(shè)計(jì)中,繼承用一條帶空心三角箭頭的實(shí)線表示,從子類(lèi)指向父類(lèi),或者子接口指向父接口。

????????UML類(lèi)圖表示

? ? ? ? Animal是Tiger的泛化,Tiger是Animal的特化

二、實(shí)現(xiàn)

????????實(shí)現(xiàn)指的是一個(gè)class類(lèi)實(shí)現(xiàn)interface接口(可以是多個(gè))的功能,實(shí)現(xiàn)是類(lèi)與接口之間最常見(jiàn)的關(guān)系。在Java中此類(lèi)關(guān)系通過(guò)關(guān)鍵字implements明確標(biāo)識(shí),C#中使用:來(lái)標(biāo)識(shí),在UML類(lèi)圖設(shè)計(jì)中,實(shí)現(xiàn)用一條帶空心三角箭頭的虛線表示,從類(lèi)指向?qū)崿F(xiàn)的接口。

????????UML類(lèi)圖表示

類(lèi)與接口的關(guān)系,表示類(lèi)實(shí)現(xiàn)了接口


三、依賴

????????類(lèi)A的實(shí)現(xiàn)需要引用類(lèi)B,這就是依賴,這種使用關(guān)系是具有偶然性的、臨時(shí)性的、非常弱的,而B(niǎo)類(lèi)的變化會(huì)影響到A,則A與B存在依賴關(guān)系,依賴關(guān)系是弱的關(guān)聯(lián)關(guān)系。例如:人依賴計(jì)算機(jī)去做軟件開(kāi)發(fā)。在UML類(lèi)圖設(shè)計(jì)中,依賴關(guān)系用由類(lèi)A指向類(lèi)B的帶箭頭虛線表示。

????????UML類(lèi)圖表示

依賴是一種使用關(guān)系

四、關(guān)聯(lián)

????????關(guān)聯(lián)體現(xiàn)的是兩個(gè)類(lèi)之間語(yǔ)義級(jí)別的一種 強(qiáng)依賴關(guān)系,比如我和我的朋友,這種關(guān)系比依賴更強(qiáng)、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時(shí)性的,一般是長(zhǎng)期性的,而且雙方的關(guān)系一般是平等的。

????????關(guān)聯(lián)可以是單向、雙向的。表現(xiàn)在代碼層面,為被關(guān)聯(lián)類(lèi)B以類(lèi)的屬性形式出現(xiàn)在關(guān)聯(lián)類(lèi)A中,也可能是關(guān)聯(lián)類(lèi)A引用了一個(gè)類(lèi)型為被關(guān)聯(lián)類(lèi)B的全局變量。在UML類(lèi)圖設(shè)計(jì)中,關(guān)聯(lián)關(guān)系用由關(guān)聯(lián)類(lèi)A指向被關(guān)聯(lián)類(lèi)B的帶箭頭實(shí)線表示

????????UML類(lèi)圖表示

關(guān)聯(lián)是一種擁有關(guān)系,它使一個(gè)類(lèi)知道另一個(gè)類(lèi)的屬性或方法


五、聚合

????????聚合是關(guān)聯(lián)關(guān)系的一種特例,它體現(xiàn)的是整體與部分的關(guān)系,即 has-a 的關(guān)系。此時(shí)整體與部分之間是可分離的,它們可以具有各自的生命周期,部分可以屬于多個(gè)整體對(duì)象,也可以為多個(gè)整體對(duì)象共享。此時(shí)整體與部分之間是可分離的,即沒(méi)有了整體,局部也可單獨(dú)存在。比如計(jì)算機(jī)與CPU、公司與員工的關(guān)系等。表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分。在UML類(lèi)圖設(shè)計(jì)中,聚合關(guān)系以空心菱形加實(shí)線表示(菱形指向整體)

????????UML類(lèi)圖表示

? ? ? ??

個(gè)體有獨(dú)立的生命周期,聚合是把個(gè)體對(duì)象的指針(引用)作為整體類(lèi)的屬性,弱擁有關(guān)系

六、組合

????????組合也是關(guān)聯(lián)關(guān)系的一種特例,這種關(guān)系比聚合更強(qiáng),是一種contains-a的關(guān)系,部分不能脫離整體存在。這是一種比聚合更強(qiáng)的關(guān)系,所以也稱(chēng)為強(qiáng)聚合。

????????整體的生命周期即為組成部分的生命周期。它同樣體現(xiàn)整體與部分間的關(guān)系,但此時(shí)整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束,比如人和人的大腦。表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分。在UML類(lèi)圖設(shè)計(jì)中,組合關(guān)系以實(shí)心菱形加實(shí)線表示

????????UML類(lèi)圖表示

個(gè)體/部分 不存在獨(dú)立的生命周期,個(gè)體/部分的生命周期,與整體的生命周期保持一致,強(qiáng)擁有關(guān)系



全圖 看你掌握了沒(méi)~

————————————————

參考文章:https://blog.csdn.net/weixin_43819566/article/details/111795638



設(shè)計(jì)原則(二)——類(lèi)與類(lèi)之間的關(guān)系的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
屏山县| 香格里拉县| 长治市| 扬州市| 长兴县| 新竹县| 定兴县| 巴里| 定结县| 洛川县| 静宁县| 灵寿县| 黄山市| 桃园市| 湛江市| 花垣县| 三明市| 依安县| 油尖旺区| 青冈县| 城口县| 宽城| 万荣县| 庐江县| 绿春县| 阿图什市| 龙门县| 富民县| 宝应县| 乌鲁木齐县| 达州市| 姜堰市| 墨竹工卡县| 濮阳市| 霍林郭勒市| 贡山| 永兴县| 吉木乃县| 图木舒克市| 长丰县| 五河县|