组合和聚合的区别,通俗易懂。
生活随笔
收集整理的這篇文章主要介紹了
组合和聚合的区别,通俗易懂。
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
聚合與組合都是表示整體和個(gè)體的關(guān)聯(lián)關(guān)系,他們之間最大的區(qū)別在于子類被父類控制的程度。組合的父子類關(guān)系比聚合要強(qiáng)。
組合:part-of關(guān)系,父類擁有子類,子類不能獨(dú)立于父類存在。
這種關(guān)系比聚合更強(qiáng),也稱為強(qiáng)聚合;他同樣體現(xiàn)整體與部分間的關(guān)系,但此時(shí)整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束。
下面代碼的A類、B類之間的關(guān)系是組合關(guān)系
聚合:has-a關(guān)系,父類包含子類,子類可以獨(dú)立于父類存在。
整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個(gè)整體對(duì)象,也可以為多個(gè)整體對(duì)象共享。
下面代碼的A類、B類之間的關(guān)系是聚合關(guān)系
public class A {void funcA() {// ...} }A a; public class B {a.funcA(); }總結(jié)
以上是生活随笔為你收集整理的组合和聚合的区别,通俗易懂。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 12行代码AC_Leecode 495.
- 下一篇: 数字签名、数字证书、对称加密算法、非对称