閱讀說明:本節(jié)主要是介紹UML類圖關(guān)系與解釋,主要也是讓大家對(duì)UML建模中的類圖基本關(guān)系有一個(gè)初步了解和認(rèn)識(shí)菩掏,后面還會(huì)陸陸續(xù)續(xù)的更新更多詳細(xì)的UML開發(fā)應(yīng)用學(xué)習(xí)文章魂角,直接對(duì)接我們當(dāng)下的開發(fā)。
注意事項(xiàng):UML工具是StarUML智绸,我用的是Mac版本野揪,大家可以下載自己電腦對(duì)應(yīng)的版本。
下載地址:http://staruml.io/download
內(nèi)容一:類圖-依賴關(guān)系传于?
1囱挑、概念醉顽?
描述了一個(gè)類的變化對(duì)依賴于它的類產(chǎn)生影響的情況沼溜。
例如:定義兩個(gè)類,一個(gè)A類游添,一個(gè)B類系草,然后A類引用了B類,這種關(guān)系稱之為偶然性或者臨時(shí)性唆涝。同時(shí)當(dāng)我們的B類發(fā)生變化的時(shí)候找都,那么影響到A類,這個(gè)關(guān)系稱之為依賴關(guān)系廊酣。
??2能耻、關(guān)系與解釋?
依賴關(guān)系:Dependency
????????例如:MainActivity和Retrofit之間關(guān)系亡驰?
注意:箭頭指向判定->指向被依賴者
依賴者:MainActivity
被依賴者:Retrofit
箭頭指向->Retrofit
內(nèi)容二:類圖-實(shí)現(xiàn)關(guān)系晓猛?
1、概念凡辱?
對(duì)應(yīng)于類和接口之間的關(guān)系戒职。
說白了:就是通常所說的實(shí)現(xiàn)接口。
2透乾、關(guān)系與解釋洪燥?
實(shí)現(xiàn)關(guān)系:Interface Realization
例如:MainActivity和OnClickListener之間關(guān)系?
?注意:箭頭指向判定->指向接口
實(shí)現(xiàn):MainActivity
接口:OnClickListener
箭頭指向->OnClickListener
內(nèi)容三:類圖-泛化關(guān)系乳乌?
1捧韵、概念?
在面向?qū)ο笾幸话惴Q為繼承關(guān)系汉操,存在于父類與子類再来、父接口與子接口之間。
2客情、關(guān)系與解釋其弊??
泛化關(guān)系:Generalization
例如:Activity和MainActivity之間的關(guān)系癞己?
??注意:箭頭指向判定->指向父類
父類:Activity
子類:MainActivity
箭頭指向->Activity
內(nèi)容四:類圖-關(guān)聯(lián)關(guān)系-單向關(guān)聯(lián)?
1梭伐、概念痹雅?
第一點(diǎn):關(guān)聯(lián)關(guān)系其實(shí)本質(zhì)就是依賴關(guān)系的特殊情況,關(guān)聯(lián)關(guān)系比依賴更強(qiáng)糊识、不存在依賴關(guān)系的偶然性绩社、關(guān)系也不是臨時(shí)性的,一般是長(zhǎng)期性的赂苗,而且雙方的關(guān)系一般是平等愉耙,關(guān)聯(lián)關(guān)系可以是單向或者雙向。
第二點(diǎn):?jiǎn)蜗蜿P(guān)聯(lián)是關(guān)聯(lián)關(guān)系中一個(gè)場(chǎng)景拌滋。
2朴沿、關(guān)系與解釋?
?單向關(guān)聯(lián):Directed Association
例如:?jiǎn)T工和考勤記錄之間關(guān)系->單向關(guān)聯(lián)場(chǎng)景败砂?
1個(gè)員工對(duì)應(yīng)多個(gè)考勤記錄赌渣,1個(gè)考勤記錄對(duì)應(yīng)1個(gè)員工。
備注:在這里也就是我們通常所說的“一對(duì)多”的意思昌犹。
?注意:箭頭指向判定->指向被關(guān)聯(lián)者
關(guān)聯(lián)者:Employee
被關(guān)聯(lián)者:Attendance
箭頭指向->Attendance
內(nèi)容五:類圖-關(guān)聯(lián)關(guān)系-雙向關(guān)聯(lián)坚芜?
1、概念斜姥?
第一點(diǎn):關(guān)聯(lián)關(guān)系其實(shí)本質(zhì)就是依賴關(guān)系的特殊情況鸿竖,關(guān)聯(lián)關(guān)系比依賴更強(qiáng)、不存在依賴關(guān)系的偶然性铸敏、關(guān)系也不是臨時(shí)性的缚忧,一般是長(zhǎng)期性的,而且雙方的關(guān)系一般是平等搞坝,關(guān)聯(lián)關(guān)系可以是單向或者雙向搔谴。?
第二點(diǎn):雙向關(guān)聯(lián)是關(guān)聯(lián)關(guān)系中一個(gè)場(chǎng)景。
? ?2桩撮、關(guān)系與解釋敦第?
雙向關(guān)聯(lián):Association
例如:訂單和用戶之間關(guān)系->雙向關(guān)聯(lián)場(chǎng)景?
一個(gè)訂單對(duì)應(yīng)多個(gè)用戶店量,一個(gè)用戶對(duì)應(yīng)多個(gè)訂單芜果。
案例一:團(tuán)購(gòu)飛機(jī)票,1個(gè)飛機(jī)票訂單可以對(duì)應(yīng)5個(gè)用戶融师,1個(gè)用戶可以購(gòu)買多張飛機(jī)票右钾。
案例二:團(tuán)購(gòu)電影票,1個(gè)電影票訂單可以對(duì)應(yīng)多個(gè)用戶,1個(gè)用戶可以購(gòu)買多張電影票舀射。
備注:在這里也就是我們通常所說的“多對(duì)多”的意思窘茁。
注意:雙向關(guān)聯(lián)不存在箭頭指向。
內(nèi)容六:類圖-關(guān)聯(lián)關(guān)系-聚合關(guān)系脆烟?
1山林、概念?
第一點(diǎn):聚合關(guān)系是關(guān)聯(lián)關(guān)系的特殊場(chǎng)景邢羔。
第二點(diǎn):強(qiáng)調(diào)整體和局部驼抹。
第三點(diǎn):整體和局部可以分離,各自有各自的生命周期拜鹤,互不干擾框冀,局部強(qiáng)調(diào)共享。
??2敏簿、關(guān)系與解釋明也?
聚合關(guān)系:Aggregation
例如:電腦和顯卡關(guān)系?
注意:箭頭指向判定->指向整體
整體:Computer
局部:Displayer
箭頭指向->Computer
內(nèi)容七:類圖-關(guān)聯(lián)關(guān)系-組合關(guān)系极谊?
1诡右、概念安岂?
整體和部分不可以分離轻猖,共享生命周期,整體生命周期結(jié)束意味著部分生命周期結(jié)束域那。
2咙边、關(guān)系與解釋?
組合關(guān)系:Composition
例如:公司是由各個(gè)部門組成次员?
整體:公司
局部:部門
注意:箭頭指向判定->指向整體
整體:Company
局部:Department
箭頭指向->Company?
????備注:本篇文章基本上都是理論概念败许,但是希望讀者對(duì)這些理論概念有一個(gè)初步認(rèn)識(shí),后續(xù)會(huì)對(duì)每一個(gè)理論概念進(jìn)行一一分析淑蔚,并且直接切入當(dāng)下開發(fā)市殷。歡迎每一位讀者關(guān)注后續(xù)文章更新,同時(shí)大家有什么好的建議也可以提出來(lái)刹衫,我也會(huì)不斷優(yōu)化方便大家學(xué)習(xí)提升醋寝。Android開發(fā)技術(shù)分享5000人認(rèn)證群653 9611 28,歡迎各位喜歡Android技術(shù)的同學(xué)一起交流!