設計模式學習總結-創建型模式
1.單例(Singleton)
構造函數private或protected,防止外部實例化;
雙層鎖定實例化,防止多線程的多個實例化;
類要sealed,防止被繼承後派生添加實例;
餓漢、懶漢兩種類型,各有千秋;
2.原型(Prototype)
Clone 淺拷貝,複製值類型,不復制引用類型;
Copy 深拷貝,值類型與引用類型都做複製;
在.NET中實現ICloneable接口,用this.MemberwiseClone()實現淺拷貝;
3.建造者(Builder)
各細節流程不同,但裝配方式一致時,可以使用建造者模式以規範流程;
4.工廠方法(FactoryMethod)
工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對於客戶端來說,去除了與具體產品的依賴。
工廠方法使用添加新功能時,只要修改客戶端代碼。
5.抽象工廠(AbstractFactory)
用於創建一系列相關或相關依賴對象的接口,無需指定它們具體的類,如:支持多種數據庫的數據庫訪問層;
與簡單工廠及反射配合,可以使抽象工廠的程序更加簡潔完美;