統計

          留言簿(1)

          DB

          Others

          QA

          Tech Website

          閱讀排行榜

          評論排行榜

          Java設計模式總結

          一、寫在前面
                  剛開學,趁著有時間把設計模式重新整理一次。學好設計模式是走向架構的第一步,系統架構應該朝著可維護,可擴展,強壯性好的方向去發展。大學的最后一個學期了,時間不多了,3月初就要去騰訊實習了,還有畢設。加油 :)

          二、常見的模式分類
           

          創建模式

          結構模式

          行為模式

          簡單工廠模式

          適配器模式

          不變模式

          工廠方法模式

          缺省適配模式

          策略模式

          抽象工廠模式

          合成模式

          模版方法模式

          單例模式

          裝飾模式

          觀察者模式

          多例模式

          代理模式

          迭代子模式

          建造模式

          享元模式

          責任鏈模式

          原始模型模式

          門面模式

          命令模式

          橋梁模式

          備忘錄模式

          狀態模式

          訪問者模式

          解釋器模式

          調停者模式



          三、主要模式的定義和描述
          以下內容來自《head first 設計模式》一書
           

          模式

          定義

          描述

          裝飾者

          動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案

          包裝一個對象,以提供新的行為

          狀態

          允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了它的類

          封裝了基本狀態的行為,并使用委托在行為之間切換

          迭代器

          提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露其內部的表示

          在對象的集合之中游走,而不暴露集合的實現

          外觀(門面)

          提供一個統一的接口,用來訪問子系統中的一群接口。外觀定義了一個高層接口,讓子系統更多容易使用

          簡化一群類的接口

          策略

          定義算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立于使用算法的客戶

          封裝可以互換的行為,并使用委托來決定使用那一種

          代理

          為另一個對象提供一個替身或點位符以訪問這個對象

          包裝對象,以控制對此對象的訪問

          工廠方法

          定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類

          由子類決定要創建是具體類是哪一個

          抽象工廠

          提供一個接口,用于創建相關或依賴對象的家族,而不需要明確指定具體類

          允許客戶創建對象的家族,而無需指定他們的具體類

          適配器

          將一個類的接口,轉換成客戶期望另一個接口。適配器讓原來不兼容的類可以合作無間

          封裝對象,并提供不同的接口

          觀察者

          在對象之間定義一對多的依賴,這樣一來,當一個對象改變時,依賴它的對象都會收到通知并自動更新

          讓對象能夠在狀態改變時被通知

          模板方法

          在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟

          由子類決定如何實現一個算法中的步驟

          組合

          允許你將對象組成樹結構來表現“整體/部分”的層次結構。組合能讓客戶以一致的方式處理個別對象和對象組合

          客戶用一致的方式處理對象集合和單個對象

          單件(單體)

          確保一個類只有一個實例,并提供全局訪問點

          確保只有一個對象被創建

          命令

          將請求封裝成對象,這可以讓你使用不同的請求、隊列,或者日志請求來參數化其它對象。命令模式也可以支持撤銷操作

          封裝請求為對象


            四、參考資料
                   IBM社區設計模式方面資料: http://www.ibm.com/developerworks/cn/java/design/
                   常見OO原則:http://www.aygfsteel.com/jicheng687/archive/2011/02/13/344174.html

          --END--

          posted on 2011-02-21 23:40 XXXXXX 閱讀(3160) 評論(0)  編輯  收藏 所屬分類: Programing

          主站蜘蛛池模板: 台湾省| 罗山县| 福州市| 时尚| 财经| 平顺县| 大城县| 犍为县| 安国市| 乡宁县| 万山特区| 宿松县| 铜梁县| 富宁县| 阳泉市| 花莲市| 庄河市| 凤城市| 本溪| 余江县| 壶关县| 理塘县| 邵武市| 郎溪县| 德清县| 都安| 鲁甸县| 汝南县| 吉安市| 大关县| 苏尼特右旗| 达孜县| 庐江县| 紫金县| 台北市| 汽车| 桐城市| 东山县| 古丈县| 和林格尔县| 屯门区|