天天看小說

第38章

大B:“說說組合模式的優點吧!”

小A:“組合模式定義了包含基本對象和組合對象的類層次結構。基本對象可以被組合成更復雜的組合對象,而這個組合對象又可以被組合,這樣不斷地遞歸下去,客戶代碼中,任何用到基本對象的地方都可以使用組合對象了。用戶不用關心到底是處理一個葉節點還是處理一個組合組件,也就是用不著爲定義組合而寫一些選擇判斷語句了,簡單地說就是組合模式讓客戶可以一致地使用組合結構和單個對象。”

大B:“嗯,你知不知道什麼是透明方式?什麼是安全方式?及他們的好處。”

小A:“透明方式也就是說在Component中聲明所有用來管理子對象的方法中,其中包括Add、Remove等。這樣實現Component接口的所有子類都具備了Add和Remove。這樣做的好處就是葉節點和枝節點對於外界沒有區別,它們具備完全一致的行爲接口。但問題也很明顯,因爲Leaf類本身不具備Add()、Remove()方法的功能,所以實現它是沒有意義的。安全方式也就是在Component接口中不去聲明Add和Remove方法,那麼子類的Leaf也不需要去實現它,而是在Composite聲明所有用來管理子類對象的方法。不過由於不透明,所以樹葉和樹枝將不具有相同的接口,客戶端的調用需要做相應的判斷,帶來了不便。”

第189章第92章第49章第79章第140章第1章第103章第26章第151章第63章第202章第14章第94章第52章第156章第104章第184章第171章第55章第126章第134章第202章第122章第12章第73章第184章第89章第95章第136章第194章第44章第9章第110章第112章第27章第32章第7章第177章第160章第217章第104章第136章第11章第33章第128章第23章第227章第133章第48章第174章第220章第175章第189章第223章第191章第143章第154章第138章第109章第107章第178章第207章第68章第10章第182章第57章第217章第83章第19章第17章第27章第41章第98章第110章第124章第205章第105章第18章第115章第156章第199章第84章第16章第84章第1章第137章第89章第22章第69章第202章第174章第102章第68章第172章第72章第128章第210章第89章第178章第92章
第189章第92章第49章第79章第140章第1章第103章第26章第151章第63章第202章第14章第94章第52章第156章第104章第184章第171章第55章第126章第134章第202章第122章第12章第73章第184章第89章第95章第136章第194章第44章第9章第110章第112章第27章第32章第7章第177章第160章第217章第104章第136章第11章第33章第128章第23章第227章第133章第48章第174章第220章第175章第189章第223章第191章第143章第154章第138章第109章第107章第178章第207章第68章第10章第182章第57章第217章第83章第19章第17章第27章第41章第98章第110章第124章第205章第105章第18章第115章第156章第199章第84章第16章第84章第1章第137章第89章第22章第69章第202章第174章第102章第68章第172章第72章第128章第210章第89章第178章第92章
主站蜘蛛池模板: 民权县| 醴陵市| 玉山县| 怀远县| 墨玉县| 邵武市| 遵义市| 水富县| 朝阳区| 中阳县| 宿松县| 莫力| 同江市| 佛山市| 安宁市| 宁武县| 无棣县| 云龙县| 阿荣旗| 罗定市| 察雅县| 买车| 乐清市| 长治市| 广灵县| 桂东县| 福泉市| 久治县| 吉首市| 赤水市| 丰原市| 莱州市| 西华县| 古丈县| 新野县| 杭州市| 寻甸| 江城| 山西省| 英德市| 新绛县|