設計模式比較


http://my.oschina.net/rainingcn/blog/41458


一。創建者模式:

     1.工廠模式注重的是整體對象的創建方法,而建造者模式注重的是部件構建的過程,旨在通過一步步的精確構造創建出一個複雜的對象。抽象工廠模式實現對產品家族的創建。

     2.(抽象)工廠模式與創建者模式的不同:

           2.1 意圖不同: 工廠模式關注的是一個產品的整體,而建造者模式由一個個產品組成部分的創建過程。

           2.2 產品的複雜度不同:工廠模式創建的一般都是單一產品,而建造者模式創建的是一個複雜的產品

    3.原型模式:原型模式其實是從一個對象再創建另個一個可定製的對象,而且不需知道任何創建的細節。一般在初始化的信息不發生變化的情況下,克隆是最好的辦法。

    (4.模板模式:使用繼承,將所有重複的代碼都要上升到父類中。)

  5.單例模式:創建一個實例

二。結構類模式:通過組合類或對象產生更大結構以適應更高層次的邏輯需求。

       1. 代理模式與裝飾模式很像。代理模式關注控制過程的訪問,使用者關注的是原來的功能;而裝飾模式關注的是在一個對象上動態的添加方法,使用者關注的是裝飾之後的功能。
         從行爲上說,當使用代理模式的時候,我們常常在一個代理類中創建一個對象的實例。而使用裝飾器模 式的時候,通常的做法是將原始對象作爲一個參數傳給裝飾者的構造器。

     2.裝飾模式和適配器模式差別比較大,但它們的功能也有相似的地方:都是包裝作用,都是通過委託方式實現其功能。不同點:裝飾模式包裝的是自己的兄弟類,率屬於同一個家族(相同接口或者父類),適配器模式則修飾非血緣關係類,關注的是兩個對象之間的轉換。

     3.共同點:橋接和適配器都是讓兩個東西配合工作
    不同點:出發點不同。

    適配器:改變已有的兩個接口,讓他們相容。
    橋接模式:分離抽象化和實現,使兩者的接口可以不同,目的是分離

  4.組合模式以類爲主導,
    裝飾模式以對象爲主導
    組合模式弊端,組合的種類多種多樣,爲每種組合創造一個類,類的數量急劇的增加。
    裝飾模式弊端,會造成對象的嵌套層次太深

三。行爲類模式:

    1.命令模式與策略模式的區別:

       類圖相似,但是命令模式多了個接受者(Receiver)

       1.1關注點不同:策略模式關注的是算法的替換問題,命令模式關注的是解耦問題:請求者、接受者之間的解耦,命令之間的解耦。

    2.策略模式VS狀態模式:
       策略模式旨在解決內部算法如果改變問題,保證的是算法可自由切換;狀態模式旨在解決內在狀態的改變而引起行爲改變的問題,它的出發點是事物的狀態,封裝狀態而暴露行爲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章