生活随笔
收集整理的這篇文章主要介紹了
组合模式_[设计模式]10.组合模式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
組合模式,也叫“部分整體模式”,它把相似的對(duì)象組合成樹(shù)形結(jié)構(gòu)的一個(gè)整體。于是,只需一個(gè)代表,我們就能繼續(xù)訪問(wèn)與之相關(guān)的同族對(duì)象。
模式卡片
模式UML圖
七個(gè)例子
部門里人很多,大多數(shù)公司都形成鮮明的科層制。為了把這些人組織起來(lái),不妨使用對(duì)象模式,這樣每個(gè)人的直系下屬都可以通過(guò)這個(gè)人來(lái)直接訪問(wèn)。我的家族至今保存了比較完整的家譜,為了讓找準(zhǔn)我在整個(gè)家族中的位置,可以把先輩們的信息用組合模式組合起來(lái)。當(dāng)關(guān)系構(gòu)建完成之后,就能從追溯到的最早祖先開(kāi)始,呈現(xiàn)整個(gè)族譜了。電腦上的文件太多了,遂把相關(guān)的文件放到一個(gè)文件夾里,文件夾也可以由別的文件夾組合而成。語(yǔ)文老師說(shuō),人生就是一個(gè)問(wèn)題接著另一個(gè)問(wèn)題。如果問(wèn)題們是可以組合的,那么人生本身其實(shí)就是一個(gè)問(wèn)題。為了解決這個(gè)問(wèn)題,我們必須解決它的各個(gè)子問(wèn)題。而每個(gè)子問(wèn)題也未必是能直接解決的。但總是得繼續(xù)解決,用程序員的話說(shuō),人生就是在執(zhí)行這樣一行無(wú)限遞歸的代碼:void solve_probleam(now){solve_problem(now.subproblems());}為什么需要組合模式?因?yàn)槲覀兿胗猛瑯拥姆绞教幚硪粋€(gè)對(duì)象和一群對(duì)象,同時(shí)還想保證對(duì)象之間的關(guān)聯(lián)。組合說(shuō)白了就是同類對(duì)象的有(樹(shù)形)組織的集群。我養(yǎng)了貓、狗、倉(cāng)鼠、兔子等各種寵物,他們還會(huì)生自己的崽子。不管養(yǎng)啥都得花錢,我就給每個(gè)崽都辦了張卡,為了讓打錢養(yǎng)他們變得容易,我就用組合模式把它們給組合起來(lái)了,我是老大,后面的崽子分別連成族譜。
總結(jié)
以上是生活随笔為你收集整理的组合模式_[设计模式]10.组合模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。