linux java uml_简单实用UML关系图解
一句話(huà)UML,再記不住就要DPP了:
關(guān)系
圖解
代碼
備注
1:繼承關(guān)系(Generalization)
2:實(shí)現(xiàn)關(guān)系(Realization)
3:依賴(lài)關(guān)系(Dependency)
方法的參數(shù)、局部變量、返回值
4:關(guān)聯(lián)關(guān)系(Association)
互為類(lèi)屬性
5:方向關(guān)聯(lián)(DirectedAssociation)
類(lèi)屬性
6:聚合關(guān)系(Aggregation)
類(lèi)屬性
has a
7:組合關(guān)系(Composition)
類(lèi)屬性
contains a
現(xiàn)在,稍作詳細(xì)點(diǎn),
一:繼承關(guān)系(Generalization):
Class B繼承與Class A
繼承指的是一個(gè)類(lèi)(稱(chēng)為子類(lèi)、子接口)繼承另外的一個(gè)類(lèi)(稱(chēng)為父類(lèi)、父接口)的功能,并可以增加它自己的新功能的能力,繼承是類(lèi)與類(lèi)或者接口與接口之間最常見(jiàn)的關(guān)系之一;在Java中此類(lèi)關(guān)系通過(guò)關(guān)鍵字extends明確標(biāo)識(shí),在設(shè)計(jì)時(shí)一般沒(méi)有爭(zhēng)議性;
二:實(shí)現(xiàn)關(guān)系(Realization):
Class A實(shí)現(xiàn)了Interface A
實(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í),在設(shè)計(jì)時(shí)一般沒(méi)有爭(zhēng)議性;
三:依賴(lài)關(guān)系(Dependency):
ClassA依賴(lài)于ClassB
可以簡(jiǎn)單的理解,就是一個(gè)類(lèi)A使用到了另一個(gè)類(lèi)B,而這種使用關(guān)系是具有偶然性的、臨時(shí)性的、非常弱的,但是B類(lèi)的變化會(huì)影響到A;表現(xiàn)在代碼層面,為類(lèi)B作為參數(shù)被類(lèi)A在某個(gè)method方法中使用;
四:關(guān)聯(lián)關(guān)系(Association):
ClassA與ClassB相互關(guān)聯(lián)
這里的關(guān)聯(lián)關(guān)系分的比較細(xì),把相互關(guān)聯(lián)和有方向的關(guān)聯(lián)區(qū)分開(kāi)了,相互他體現(xiàn)的是兩個(gè)類(lèi)、或者類(lèi)與接口之間語(yǔ)義級(jí)別的一種強(qiáng)依賴(lài)關(guān)系,是一種長(zhǎng)期的穩(wěn)定的關(guān)系;表現(xiàn)在代碼層面,為被關(guān)聯(lián)類(lèi)以類(lèi)屬性的形式出現(xiàn)在關(guān)聯(lián)類(lèi)中,也可能是關(guān)聯(lián)類(lèi)引用了一個(gè)類(lèi)型為被關(guān)聯(lián)類(lèi)的全局變量;
五:有方向的關(guān)聯(lián)(DirectedAssociation):
ClassA關(guān)聯(lián)于ClassB
是關(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的全局變量;
六:聚合關(guān)系(Aggregation):
計(jì)算機(jī) has-a cpu
聚合是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是整體與部分、擁有的關(guān)系,即has-a的關(guān)系,此時(shí)整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個(gè)整體對(duì)象,也可以為多個(gè)整體對(duì)象共享;比如計(jì)算機(jī)與CPU;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分;
七:組合關(guān)系(Composition):
孕婦 contains-a 胎兒
組合也是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是一種contains-a的關(guān)系,這種關(guān)系比聚合更強(qiáng),也稱(chēng)為強(qiáng)聚合;他同樣體現(xiàn)整體與部分間的關(guān)系,但此時(shí)整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;孕婦死了胎兒自然也就死了;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分;
總結(jié)
以上是生活随笔為你收集整理的linux java uml_简单实用UML关系图解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 双侧输卵管堵塞能不能做试管婴儿
- 下一篇: php实现视频转gif,在Linux上将