組合模式
主要是用來處理樹形結(jié)構(gòu)數(shù)據(jù)
數(shù)據(jù)必須能表示成樹形結(jié)構(gòu)纽匙,這種模式在實(shí)際的項(xiàng)目開發(fā)中并不那么常用厌丑。但是岗仑,一旦數(shù)據(jù)滿足樹形結(jié)構(gòu)匹耕,應(yīng)用這種模式就能發(fā)揮很大的作用,能讓代碼變得非常簡潔荠雕。
組合模式稳其,將一組對(duì)象組織成樹形結(jié)構(gòu),將單個(gè)對(duì)象和組合對(duì)象都看做樹中的節(jié)點(diǎn)炸卑,以統(tǒng)一處理邏輯既鞠,并且它利用樹形結(jié)構(gòu)的特點(diǎn),遞歸地處理每個(gè)子樹盖文,依次簡化代碼實(shí)現(xiàn)嘱蛋。
使用場景
- 經(jīng)典案例:文件系統(tǒng)結(jié)構(gòu)文件夾-文件。文件夾包含文件五续,文件夾包含文件夾這種模型洒敏。
- 能夠完美使用該模式的場景有很多,只要能夠形成屬性結(jié)構(gòu)的數(shù)據(jù)均可使用該模式返帕。常見的有員工-部門桐玻,權(quán)限系統(tǒng)中的員工和部門數(shù)據(jù)結(jié)構(gòu)可以完美的使用該模式,部門下面有部門荆萤,部門下面可以有員工镊靴。可以形成樹形結(jié)構(gòu)链韭。如果我們針對(duì)其中的某一塊進(jìn)行一些計(jì)算的時(shí)候就可以遞歸的計(jì)算其結(jié)果偏竟。并且部門數(shù)據(jù)和員工數(shù)據(jù)的改變相對(duì)較小,我們可以引入緩存來存儲(chǔ)這些數(shù)據(jù)敞峭,如果數(shù)據(jù)變更時(shí)我們重構(gòu)該結(jié)構(gòu)就可以了踊谋。