組合模式(Composite)


前言

設(shè)計(jì)模式系列代碼均持續(xù)更新在我的gitHub:to github


I. 組合模式簡(jiǎn)介

又叫作整體-部分(Part-Whole)模式,它是一種將對(duì)象組合成樹狀的層次結(jié)構(gòu)的模式,用來(lái)表示“整體-部分”的關(guān)系,使用戶對(duì)單個(gè)對(duì)象和組合對(duì)象具有一致的訪問(wèn)性,屬于結(jié)構(gòu)型設(shè)計(jì)模式。


II. 組合模式包含以下角色

  • 抽象構(gòu)件(Component)角色:它的主要作用是為樹葉構(gòu)件和樹枝構(gòu)件聲明公共接口,并實(shí)現(xiàn)它們的默認(rèn)行為。在透明式的組合模式中抽象構(gòu)件還聲明訪問(wèn)和管理子類的接口;在安全式的組合模式中不聲明訪問(wèn)和管理子類的接口,管理工作由樹枝構(gòu)件完成。(總的抽象類或接口,定義一些通用的方法,比如新增、刪除)
  • 樹枝構(gòu)件(Composite)角色 / 中間構(gòu)件:是組合中的分支節(jié)點(diǎn)對(duì)象,它有子節(jié)點(diǎn),用于繼承和實(shí)現(xiàn)抽象構(gòu)件。它的主要作用是存儲(chǔ)和管理子部件,通常包含 Add()、Remove()、GetChild() 等方法。
  • 樹葉構(gòu)件(Leaf)角色:是組合中的葉節(jié)點(diǎn)對(duì)象,它沒(méi)有子節(jié)點(diǎn),用于繼承或?qū)崿F(xiàn)抽象構(gòu)件。


III. 組合模式類圖示例


IV. 組合模式使用場(chǎng)景

  • 數(shù)據(jù)具有樹形結(jié)構(gòu)
  • 整體數(shù)據(jù)要保證一致性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 組合模式(Composite) 在現(xiàn)實(shí)生活中,存在很多“部分-整體”的關(guān)系,例如,大學(xué)中的部門與學(xué)院、總公司中的部...
    Acton_zhang閱讀 511評(píng)論 0 1
  • 前言 《設(shè)計(jì)模式自習(xí)室》系列,顧名思義,本系列文章帶你溫習(xí)常見的設(shè)計(jì)模式。主要內(nèi)容有: 該模式的介紹,包括:引子、...
    蠻三刀醬閱讀 590評(píng)論 0 0
  • 組合模式Composite 背景 我們可以使用簡(jiǎn)單的對(duì)象組合成復(fù)雜的對(duì)象,而這個(gè)復(fù)雜對(duì)象有可以組合成更大的對(duì)象。我...
    踐行者閱讀 562評(píng)論 1 3
  • 1、概念 組合模式將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。它使得客戶對(duì)單個(gè)對(duì)象和復(fù)合對(duì)象的使用具有一致...
    fomin閱讀 252評(píng)論 0 0
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,788評(píng)論 16 22

友情鏈接更多精彩內(nèi)容