一袁串、什么是組合模式?
?1簿姨、將對象組合成樹形結構堕扶,已表示“整體"與"局部"的層次結構爱沟,使用用戶對單個對象(比如葉子)和組合對象(非葉子節(jié)點)的使用具有一致性徊件,用戶不需要關系操作的節(jié)點是基本對象節(jié)點還是組合對象節(jié)點
?通俗理解: 就是非葉子節(jié)點的方法奸攻,葉子節(jié)點一樣可以調(diào)用,只不過是在葉子節(jié)點的實現(xiàn)方法中虱痕,告訴用戶無效或者無法操作該方法睹耐,有人會問,既然不能用為啥要暴露? 我想是不是有個場景: 如果當初的葉子節(jié)點部翘,后面需求改為是非葉子節(jié)點硝训,也可以添加孩子,那是不是要去改原來的葉子節(jié)點代碼略就,讓它去支持非葉子節(jié)點的相關操作捎迫,而使用”一致性" 后,只要改實現(xiàn)類即可表牢。
二窄绒、角色?
? ?1、角色一:? 抽象節(jié)點崔兴,定義組合對象的共有方法和屬性
? ?2彰导、角色二:? 具體節(jié)點(樹枝節(jié)點), 定義組合樹枝節(jié)點和葉子節(jié)點形成一個樹形結構。
? ?3敲茄、角色三:? 葉子節(jié)點,? 構成組合樹的最小構建單元位谋。
三、Android中用到的 View的結構圖