Java依賴-關(guān)聯(lián)-聚合-組合之間區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)

首先看一看書上對(duì)這四種關(guān)系的定義:

雙塔網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),雙塔網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為雙塔上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的雙塔做網(wǎng)站的公司定做!
  • 依賴(Dependency)關(guān)系是類與類之間的聯(lián)接。依賴關(guān)系表示一個(gè)類依賴于另一個(gè)類的定義。例如,一個(gè)人(Person)可以買車(car)和房子(House),Person類依賴于Car類和House類的定義,因?yàn)镻erson類引用了Car和House。與關(guān)聯(lián)不同的是,Person類里并沒(méi)有Car和House類型的屬性,Car和House的實(shí)例是以參量的方式傳入到buy()方法中去的。一般而言,依賴關(guān)系在Java語(yǔ)言中體現(xiàn)為局域變量、方法的形參,或者對(duì)靜態(tài)方法的調(diào)用。
  • 關(guān)聯(lián)(Association)關(guān)系是類與類之間的聯(lián)接,它使一個(gè)類知道另一個(gè)類的屬性和方法。關(guān)聯(lián)可以是雙向的,也可以是單向的。在Java語(yǔ)言中,關(guān)聯(lián)關(guān)系一般使用成員變量來(lái)實(shí)現(xiàn)。
  •  聚合(Aggregation) 關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系。聚合是整體和個(gè)體之間的關(guān)系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關(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è)類是處在同一層次上的,而在聚合關(guān)系中,兩個(gè)類是處在不平等層次上的,一個(gè)代表整體,另一個(gè)代表部分。
  •  組合(Composition) 關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系強(qiáng)的關(guān)系。它要求普通的聚合關(guān)系中代表整體的對(duì)象負(fù)責(zé)代表部分對(duì)象的生命周期,組合關(guān)系是不能共享的。代表整體的對(duì)象需要負(fù)責(zé)保持部分對(duì)象和存活,在一些情況下將負(fù)責(zé)代表部分的對(duì)象湮滅掉。代表整體的對(duì)象可以將代表部分的對(duì)象傳遞給另一個(gè)對(duì)象,由后者負(fù)責(zé)此對(duì)象的生命周期。換言之,代表部分的對(duì)象在每一個(gè)時(shí)刻只能與一個(gè)對(duì)象發(fā)生組合關(guān)系,由后者排他地負(fù)責(zé)生命周期。部分和整體的生命周期一樣。

——摘自《Java面向?qū)ο缶幊獭?/p>

       以上關(guān)系的耦合度依次增強(qiáng)(關(guān)于耦合度的概念將在以后具體討論,這里可以暫時(shí)理解為當(dāng)一個(gè)類發(fā)生變更時(shí),對(duì)其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強(qiáng))。由定義我們已經(jīng)知道,依賴關(guān)系實(shí)際上是一種比較弱的關(guān)聯(lián),聚合是一種比較強(qiáng)的關(guān)聯(lián),而組合則是一種更強(qiáng)的關(guān)聯(lián),所以籠統(tǒng)的來(lái)區(qū)分的話,實(shí)際上這四種關(guān)系、都是關(guān)聯(lián)關(guān)系。


        依賴關(guān)系比較好區(qū)分,它是耦合度最弱的一種,在java中表現(xiàn)為局域變量、方法的形參,或者對(duì)靜態(tài)方法的調(diào)用,如下面的例子:Driver類依賴于Car類,Driver的三個(gè)方法分別演示了依賴關(guān)系的三種不同形式。

class Car { 
  public static void run(){ 
    System.out.println("汽車在奔跑"); 
  } 
} 
class Driver { 
  //使用形參方式發(fā)生依賴關(guān)系 
  public void drive1(Car car){ 
    car.run(); 
  } 
  //使用局部變量發(fā)生依賴關(guān)系 
  public void drive2(){ 
    Car car = new Car(); 
    car.run(); 
  } 
  //使用靜態(tài)變量發(fā)生依賴關(guān)系 
  public void drive3(){ 
    Car.run(); 
  } 
} 

分享文章:Java依賴-關(guān)聯(lián)-聚合-組合之間區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://bm7419.com/article36/dsegsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站商城網(wǎng)站、企業(yè)建站、電子商務(wù)標(biāo)簽優(yōu)化、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)