Android中對組合模式的應(yīng)用隨處可見的就是View和VIewGroup類的使用。Android UI設(shè)計,幾乎所有的widge和布局類都依靠這兩個類。
組合模式,Composite Pattern,是一個非常巧妙的設(shè)計模式。幾乎所有的面向?qū)ο笙到y(tǒng)都用到了組合模式。
意圖:
將View和ViewGroup組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)(View可以作為VIewGroup的一部分)。
組合模式使得用戶對單個對象View和組合對象VIewGroup的使用具有一致性。
結(jié)構(gòu):
針對View和ViewGroup的實際情況,我們選擇安全的組合模式(在組合對象中添加add,remove,getChild方法),添加少許的注釋,我們把上圖修改為:
效果:
1)結(jié)構(gòu)型模式。
2)定義了包含基本對象和組合對象的類層次結(jié)構(gòu)。這種結(jié)構(gòu)能夠靈活控制基本對象與組合對象的使用。
3)簡化客戶代碼。基本對象和組合對象有一致性,用戶不用區(qū)分它們。
4)使得更容易添加新類型的組件。
5)使你的設(shè)計變得更加一般化。