設(shè)計模式之組合模式

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è)計變得更加一般化。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,521評論 25 708
  • 一、組合模式的概念 先來一段官方概念:組合多個對象形成樹形結(jié)構(gòu)以表示“整體-部分”的結(jié)構(gòu)層次。組合模式對單個對象(...
    flyflyho閱讀 1,164評論 4 7
  • 組合模式 組合模式,將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu),組合模式使得用戶對單個對象和組合對象的使用...
    Binaryify閱讀 484評論 0 0
  • 組合模式 View頂層接口,隨便搞個獲取背景方法,不要在意沒有返回值哈哈 文字類,實現(xiàn)View接口。 圖片類,實現(xiàn)...
    smallstrong閱讀 191評論 0 1
  • ddfd826c77b3閱讀 159評論 0 0