細(xì)心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
          如果以繪圖為例的話,一個文字是一個繪圖元件,一個線段是一個繪圖元件,而一個長方形也是一個繪圖元件,這些繪圖元件可以組成一個圖片,如果將這個圖片也視作一個繪圖元件,則這麼遞迴繪圖下去,就可以組合成一個較大的、複雜的圖形元件,這樣的目的可以使用Composite模式來解決。

          對於使用者而言,無論是文字、線段或長方形,甚至是組合後的圖片元件,它們都擁有一個共同的行為,使用者基本上並不會感覺出它們之間的操作有任何的不同,您可以拖曳、放大、縮小等等,這些行為都是一致的。

          以 UML 來表示上面這個例子的結(jié)構(gòu):
          Composite

          對於Text、Line與Rectangle而言,Picture是一個容器,然而Picture繼承Graphic類,所以它也是一個繪圖元件,您可以進(jìn)一步的將Picture組合至另一個Picture中,以形成較大的、複雜的圖形。

          組合模式的UML結(jié)構(gòu)圖如下所示:
          Composite

          依此架構(gòu),您可以遞迴的組合圖形元件,例如:
          Composite

          除了繪圖元件之外,一些具有層次性或組合性的物件也可以使用Composite模式,像是電路元件、設(shè)備元件等等,使用Composite模式可以大大減低這些元件設(shè)計(jì)的複雜度。
          posted on 2007-04-17 10:42 張金鵬 閱讀(239) 評論(0)  編輯  收藏 所屬分類: Structural 模式
          主站蜘蛛池模板: 兴山县| 闻喜县| 花莲市| 江津市| 宁化县| 维西| 黄山市| 永福县| 伊宁市| 太仓市| 揭阳市| 屯昌县| 桂东县| 湘潭市| 太康县| 清流县| 霍林郭勒市| 江门市| 南阳市| 平阴县| 鄂托克前旗| 行唐县| SHOW| 汕尾市| 太仆寺旗| 壶关县| 兴海县| 永定县| 玉龙| 尉氏县| 耿马| 济阳县| 宾川县| 吴江市| 郑州市| 大英县| 历史| 扶余县| 瑞安市| 南城县| 乐安县|