java 中關(guān)于依賴(lài),關(guān)聯(lián),聚合,組合之前的區(qū)別理解

  • 依賴(lài) --- 局部變量,方法的形參,靜態(tài)方法
  • 關(guān)聯(lián) ,聚合,組合--- 成員變量
    聚合和組合都是關(guān)聯(lián)的一種
    聚合和組合的區(qū)別:
    聚合是個(gè)體離開(kāi)了整體,依然可以存在. 組合是個(gè)體和整體不可以分開(kāi)似踱,個(gè)體不能離開(kāi)整體單獨(dú)存在.
    依賴(lài)想许,關(guān)聯(lián) 和聚合亮蛔,組合的區(qū)別:
    依賴(lài)变擒,關(guān)聯(lián) : 類(lèi)之間的關(guān)系是在同一層次上. 聚合,組合: 類(lèi)之間的關(guān)系表現(xiàn)為整體和部分.

依賴(lài)(Dependency)
是類(lèi)于類(lèi)之間的聯(lián)接,表示一個(gè)類(lèi)依賴(lài)于另一個(gè)類(lèi)的定義;依賴(lài)關(guān)系僅僅描述了類(lèi)與類(lèi)之間的一種使用與被使用的關(guān)系;
例如八千,一個(gè)人(Person)可以買(mǎi)車(chē)(car)和房子(House)慷吊,Person類(lèi)依賴(lài)于Car類(lèi)和House類(lèi)的定義袖裕,因?yàn)镻erson類(lèi)引用了Car和House。與關(guān)聯(lián)不同的是溉瓶,Person類(lèi)里并沒(méi)有Car和House類(lèi)型的屬性急鳄,Car和House的實(shí)例是以參量的方式傳入到buy()方法中去的。一般而言嚷闭,依賴(lài)關(guān)系在Java語(yǔ)言中體現(xiàn)為局域變量、方法的形參赖临,或者對(duì)靜態(tài)方法的調(diào)用胞锰。

例如 ,我要過(guò)河,沒(méi)有橋怎么辦兢榨,我就去借來(lái)一條小船渡過(guò)去嗅榕。我與小船的關(guān)系僅僅是使用(借用)的關(guān)系顺饮。表現(xiàn)在代碼上,為依賴(lài)的類(lèi)的某個(gè)方法以被依賴(lài)的類(lèi)作為其參數(shù)凌那〖嫘郏或者是class A 的某個(gè)方法創(chuàng)造了 class B 的實(shí)例抑或?qū)lass B的靜態(tài)方法的調(diào)用。如果A依賴(lài)于B帽蝶,那意味著B(niǎo)的變化可能要求A也發(fā)生變化赦肋;


UML類(lèi)圖
class Person{    //person依賴(lài)于boat
        public void crossRiver(Boat boat){   
            boat.row() ;   
        }   
           
        public void fishing(){   
            Boat boat = new Boat() ;   
            boat.row() ;   
        }  
    
      public void patrol(){  
         Boat.row() ;  
      }  
 }  

關(guān)聯(lián)(Association)
含義:類(lèi)于類(lèi)之間的連接,關(guān)聯(lián)關(guān)系使一個(gè)類(lèi)知道另一個(gè)類(lèi)的屬性和方法;通常含有"知道","了解"的含義.關(guān)聯(lián)可以是單向的,也可以是雙向的,關(guān)聯(lián)關(guān)系在java上是通過(guò)成員變量來(lái)體現(xiàn)的
例如:客戶(hù)和訂單的關(guān)系以及公司和員工的關(guān)系,都是關(guān)聯(lián)關(guān)系励稳。還有就是我和我的單車(chē)的例子佃乘,他們都是一種“擁有”的關(guān)系。表現(xiàn)在代碼上驹尼,就是一個(gè)類(lèi)包含另一個(gè)類(lèi)的實(shí)例趣避,通常表現(xiàn)為被關(guān)聯(lián)類(lèi)以類(lèi)屬性的形式出現(xiàn)在關(guān)聯(lián)類(lèi)的類(lèi)定義中,也可以表現(xiàn)為關(guān)聯(lián)類(lèi)引用了一個(gè)類(lèi)型為被關(guān)聯(lián)類(lèi)的全局變量新翎。關(guān)聯(lián)可以使單向的程帕,也可以使雙向的。

UML圖

依賴(lài)和關(guān)聯(lián)的區(qū)別在于依賴(lài)是使用地啰,關(guān)聯(lián)是擁有.

聚合(Aggregation) 關(guān)系是關(guān)聯(lián)關(guān)系的一種愁拭,是強(qiáng)的關(guān)聯(lián)關(guān)系(has-a)。聚合是整體和個(gè)體之間的關(guān)系髓绽。例如敛苇,汽車(chē)類(lèi)與引擎類(lèi)、輪胎類(lèi)顺呕,以及其它的零件類(lèi)之間的關(guān)系便整體和個(gè)體的關(guān)系枫攀。與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系也是通過(guò)實(shí)例變量實(shí)現(xiàn)的株茶。但是關(guān)聯(lián)關(guān)系所涉及的兩個(gè)類(lèi)是處在同一層次上的来涨,而在聚合關(guān)系中,兩個(gè)類(lèi)是處在不平等層次上的启盛,一個(gè)代表整體蹦掐,另一個(gè)代表部分。
圖示:空心菱形 + 實(shí)線(xiàn) + 箭頭;箭頭指向被聚合的類(lèi),也就是說(shuō),箭頭指向個(gè)體/部分;

UML圖

組合(Composition):
含義:它也是關(guān)聯(lián)關(guān)系的一種(is-a),但它是比聚合關(guān)系更強(qiáng)的關(guān)系.組合關(guān)系要求聚合關(guān)系中代表整體的對(duì)象要負(fù)責(zé)代表個(gè)體/部分的對(duì)象的整個(gè)生命周期;組合關(guān)系不能共享;在組合關(guān)系中,如果代表整體的對(duì)象被銷(xiāo)毀或破壞,那么代表個(gè)體/部分的對(duì)象也一定會(huì)被銷(xiāo)毀或破壞,而聚在合關(guān)系中,代表個(gè)體/部分的對(duì)象則有可能被多個(gè)代表整體的對(duì)象所共享,而不一定會(huì)隨著某個(gè)代表整體的對(duì)象被銷(xiāo)毀或破壞而被銷(xiāo)毀或破壞;

體現(xiàn):在Java組合關(guān)系是通過(guò)成員變量來(lái)實(shí)現(xiàn)的;

圖示:實(shí)心菱形 + 實(shí)線(xiàn) + 箭頭;箭頭指向代表個(gè)體/部分的對(duì)象,也就是被合成/組合的類(lèi)的對(duì)象;

舉例:一個(gè)人由頭僵闯、四肢卧抗、等各種器官組成,因?yàn)槿伺c這些器官具有相同的生命周期鳖粟,人死了社裆,這些器官也掛了;房子和房間的關(guān)系,當(dāng)房子沒(méi)有了向图,房間同樣不可能單獨(dú)存在泳秀。

UML圖表示的組合關(guān)系:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末标沪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嗜傅,更是在濱河造成了極大的恐慌金句,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吕嘀,死亡現(xiàn)場(chǎng)離奇詭異违寞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)币他,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)坞靶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蝴悉,你說(shuō)我怎么就攤上這事彰阴。” “怎么了拍冠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵尿这,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我庆杜,道長(zhǎng)射众,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任晃财,我火速辦了婚禮叨橱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘断盛。我一直安慰自己罗洗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布钢猛。 她就那樣靜靜地躺著伙菜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪命迈。 梳的紋絲不亂的頭發(fā)上贩绕,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音壶愤,去河邊找鬼淑倾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛征椒,可吹牛的內(nèi)容都是我干的娇哆。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼迂尝!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起剪芥,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垄开,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后税肪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體溉躲,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年益兄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锻梳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡净捅,死狀恐怖疑枯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛔六,我是刑警寧澤荆永,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站国章,受9級(jí)特大地震影響具钥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜液兽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一骂删、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧四啰,春花似錦宁玫、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至敦迄,卻和暖如春恋追,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罚屋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工苦囱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脾猛。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓撕彤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羹铅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容