今天我要說的是建立型模式,它包括簡單工廠模式、抽象工廠模式、工廠方法模式、單例模式、建造者模式和原型模式。
主要用於建立物件。新增新類時,不會影響以前的**
優點:適合於不用情況建立不同的類
缺點:客戶端必須要知道基類和工廠內,耦合度差
舉例:計算器
缺點:對於增加裡邊的功能,需要修改的類太多!
舉例:**使用sql和access資料庫的替換
定義:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
優點:修正了簡單工廠模式不遵循開放-封閉原則。工廠模式把選擇判斷移到客戶端去實現,如果想新增功能,不用修改原來類,直接修改客戶端即可
舉例:
定義:保證乙個類僅有乙個例項,並提供它的全域性訪問點。
優點:單例模式因為singleton類封裝了它的唯一例項,這樣它可以嚴格的控制客戶端怎樣訪問和何時訪問.
舉例:定義:將乙個複雜的構建與它表示分離,使得同樣的構建過程可以建立不同的表示。
優點:使得建造**與表示**分離,由於建造者隱藏了該產品是怎麼樣組裝的,所有要需要改變乙個產品的內部表示,只需要定義乙個具體的建造者就行了。
舉例:
定義:從乙個物件建立另乙個可定製的物件,而且不需要知道任何建立的細節。說白了就是copy技術,把乙個物件完整的copy出來。
舉例:
ps:以上就是六個建立型模型的定義和圖例,但單靠這點圖例顯然是對理解和運用設計模式是遠遠不夠的,只有在反覆實踐中才能掌握設計模式真諦
設計模式學習總結 建立型模式
五大建立型設計模式的注意事項 1.單例 singleton 建構函式private或protected,防止外部例項化 雙層鎖定例項化,防止多執行緒的多個例項化 類要sealed,防止被繼承後派生新增例項 餓漢 懶漢兩種型別,各有千秋 2.原型 prototype clone 淺拷貝,複製值型別,不...
設計模式 6 建立型模式總結
建立物件最直接的方法就是利用c 提供的建構函式,這種方法的缺點是讓 繫結了具體的型別 一旦該具體型別需要被替換為新的型別,那麼程式邏輯就不得不修改 更糟糕的是,可能需要到處修改這樣的 open close原則的乙個要旨是要避免這種修改!如前所述,所有的建立型設計模式解決這個問題的方案都是 基於乙個穩...
設計模式學習總結 建立型模式
五大建立型設計模式的注意事項 1.單例 singleton 建構函式private或protected,防止外部例項化 雙層鎖定例項化,防止多執行緒的多個例項化 類要sealed,防止被繼承後派生新增例項 餓漢 懶漢兩種型別,各有千秋 2.原型 prototype clone 淺拷貝,複製值型別,不...