真实一级一级一片免费视频-真实乱欲视频-真实国产乱弄免费视频-真人午夜a一级毛片-国产成人免费视频-国产成人免费片在线视频观看

化工輕工
當前位置:網(wǎng)站首頁 > 聚合物 > 正文

聚合和組合的區(qū)別?

作者:訪客發(fā)布時間:2021-07-17分類:聚合物瀏覽:116


導(dǎo)讀:聚合(Aggregation)?關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系。聚合是整體和個體之間的關(guān)系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關(guān)系便整體和個體的關(guān)系。與關(guān)聯(lián)...

聚合(Aggregation)?關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系。聚合是整體和個體之間的關(guān)系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關(guān)系便整體和個體的關(guān)系。與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系也是通過實例變量實現(xiàn)的。但是關(guān)聯(lián)關(guān)系所涉及的兩個類是處在同一層次上的,而在聚合關(guān)系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分

組合(Composition)?關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系強的關(guān)系。它要求普通的聚合關(guān)系中代表整體的對象負責代表部分對象的生命周期,組合關(guān)系是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由后者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發(fā)生組合關(guān)系,由后者排他地負責生命周期。部分和整體的生命周期一樣。

以上關(guān)系的耦合度依次增強(關(guān)于耦合度的概念將在以后具體討論,這里可以暫時理解為當一個類發(fā)生變更時,對其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強)。由定義我們已經(jīng)知道,依賴關(guān)系實際上是一種比較弱的關(guān)聯(lián),聚合是一種比較強的關(guān)聯(lián),而組合則是一種更強的關(guān)聯(lián),所以籠統(tǒng)的來區(qū)分的話,實際上這四種關(guān)系、都是關(guān)聯(lián)關(guān)系。?聚合關(guān)系是是一種比較強的關(guān)聯(lián)關(guān)系,java中一般使用成員變量形式實現(xiàn)。對象之間存在著整體與部分的關(guān)系。例如上例中?

class?Driver?{???????//使用成員變量形式實現(xiàn)聚合關(guān)系???????Car?mycar;???????public?void?drive(){???????????mycar.run();???????}???}假如給上面代碼賦予如下語義:車是一輛私家車,是司機財產(chǎn)的一部分。則相同的代碼即表示聚合關(guān)系了。聚合關(guān)系一般使用setter方法給成員變量賦值。?假如賦予如下語義:車是司機的必須有的財產(chǎn),要想成為一個司機必須要先有輛車,車要是沒了,司機也不想活了。而且司機要是不干司機了,這個車就砸了,別人誰也別想用。那就表示組合關(guān)系了。一般來說,為了表示組合關(guān)系,常常會使用構(gòu)造方法來達到初始化的目的,例如上例中,加上一個以Car為參數(shù)的構(gòu)造方法?

public?Driver(Car?car){???????mycar?=?car;???}所以,關(guān)聯(lián)、聚合、組合只能配合語義,結(jié)合上下文才能夠判斷出來,而只給出一段代碼讓我們判斷是關(guān)聯(lián),聚合,還是組合關(guān)系,則是無法判斷的。

組合和聚合是有很大區(qū)別的,這個區(qū)別不是在形式上,而是在本質(zhì)上:比如A類中包含B類的一個引用b,當A類的一個對象消亡時,b這個引用所指向的對象也同時消亡(沒有任何一個引用指向它,成了垃圾對象),這種情況叫做組合,反之b所指向的對象還會有另外的引用指向它,這種情況叫聚合。在實際寫代碼時組合方式一般會這樣寫: A類的構(gòu)造方法里創(chuàng)建B類的對象,也就是說,當A類的一個對象產(chǎn)生時,B類的對象隨之產(chǎn)生,當A類的這個對象消亡時,它所包含的B類的對象也隨之消亡。聚合方式則是這樣: A類的對象在創(chuàng)建時不會立即創(chuàng)建B類的對象,而是等待一個外界的對象傳給它傳給它的這個對象不是A類創(chuàng)建的。現(xiàn)實生活中:人和人和手,腳是組合關(guān)系,因為當人死亡后人的手也就不復(fù)存在了。人和他的電腦是聚合關(guān)系。 class Hand{ } class Computer{ } 組合: class Person{ private Hand hand; public Person(){ hand = new Hand(); } } 聚合: class Person{ private Computer computer; public setComputer(){ computer = new Computer(); } }

標簽:聚合區(qū)別組合聚合物


主站蜘蛛池模板: 一级黄色大毛片 | 国产香蕉97碰碰久久人人 | 欧美一级性视频 | 在线欧洲成人免费视频 | 欧美精品一区视频 | 色综合久久中文字幕 | aaa毛片手机在线现看 | 永久在线| 在线国产一区二区三区 | 中文字幕久久久久 | 久久99爰这里有精品国产 | 久久久久亚洲国产 | 久久亚洲综合色 | 香蕉视频97 | 一区二区三区视频观看 | 亚洲综合图片小说区热久久 | 欧美日韩乱 | 久久免费视频2 | 亚洲欧美日韩综合在线播放 | 久久精品国产一区二区三区肥胖 | 国产 中文 制服丝袜 另类 | 特a级片 | 天天爱天天做天天爽 | 99久久精品国产免看国产一区 | 欧美日韩国产成人高清视频 | 亚洲精品www久久久久久 | 国产精品亚洲天堂 | 久久亚洲国产精品影院文轩探花 | 色青青草原桃花久久综合 | 四虎黄色网址 | 一本伊人 | 成人黄视频 | 大色综合 | 日韩欧美亚洲一区二区综合 | 看的免费污污网站 | 成人精品美女隐私视频 | 国产精品网址在线观看你懂的 | 中文字幕国产视频 | 国产成人ae在线观看网站站 | 久久精品只有这里有 | 你懂得在线网址 |