組合模式
主要是用來處理樹形結(jié)構(gòu)數(shù)據(jù)
數(shù)據(jù)必須能表示成樹形結(jié)構(gòu),這種模式在實(shí)際的項(xiàng)目開發(fā)中并不那么常用。但是,一旦數(shù)據(jù)滿足樹形結(jié)構(gòu),應(yīng)用這種模式就能發(fā)揮很大的作用,能讓代碼變得非常簡(jiǎn)潔。
組合模式,將一組對(duì)象組織成樹形結(jié)構(gòu),將單個(gè)對(duì)象和組合對(duì)象都看做樹中的節(jié)點(diǎn),以統(tǒng)一處理邏輯,并且它利用樹形結(jié)構(gòu)的特點(diǎn),遞歸地處理每個(gè)子樹,依次簡(jiǎn)化代碼實(shí)現(xiàn)。
使用場(chǎng)景
- 經(jīng)典案例:文件系統(tǒng)結(jié)構(gòu)文件夾-文件。文件夾包含文件,文件夾包含文件夾這種模型。
- 能夠完美使用該模式的場(chǎng)景有很多,只要能夠形成屬性結(jié)構(gòu)的數(shù)據(jù)均可使用該模式。常見的有員工-部門,權(quán)限系統(tǒng)中的員工和部門數(shù)據(jù)結(jié)構(gòu)可以完美的使用該模式,部門下面有部門,部門下面可以有員工??梢孕纬蓸湫谓Y(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)就可以了。