創建型模式總結創建型模式總結
1. 創建型模式成員
溫故而知新,看完前面7章的朋友首先閉上眼睛認真的想想一個很簡單的問題:創建型模式到底有幾種模式?
這裡我特意排了下次序,依據實現的難易程度由左到右遞增。
2. 創建型模式討論
l 特點:創建型模式他主要解決的是對新類創建(New)動作的封裝處理,所以我把創建型模式歸結為對新實體的創建工作中存在變化的地方進行封裝,除Singleton模式外其他模式都是解決的new帶來的耦合關系。
l 優點:
1) 動態創建新的實體類,用戶可以根據不同的需求創建不同的產品類(擅長處理易變類的創建工作)
2) 將類創建工作與業務邏輯操作分開,形成獨立的創建環境,用戶可以依據自己的需要創建適合自己的實體類。
l 缺點:
1) 每創建一個實例類都要額外的去創建一個創建這個實例類的類(工廠類),Prototype模式其實也是一個工廠,只不過他的工廠就是本身而已,所以Prototype嚴格上來說他是一個特殊的工廠
2) 由於1)的問題存在所以我們在創建實體類是,需要重復定義他的創建類。這個我們在抽象工廠中提到過這個問題當產品系列增加新品種的時候抽象工廠模式必須調整各個工廠類的實例方法(體力活)
l
3. 各模式的解決方向匯總表
模式名稱
適用環境
主意
單件模式(Singleton)
控制類實例化個數(通常為單個)
可以通過他的實現原理解決創建固定類實例個數的需求
原型模式(Prototype)
通過克隆解決一些類操作接口固定的易變類實例,原型模式可以用工廠、抽象工廠、生成器模式相互轉換
合理利用原型模式可以規避一些工廠模式創建工廠類的繁瑣工作
工廠模式 (Factory)
動態實例化一個客戶需要的類,不考慮類的其他復雜變化需求
我們在用創建型模式解決問題時通常是從工廠模式開始設計,當遇到復雜變化時,在考慮重構為其他三種工廠模式(Abstract Factory,Builder,Prototype)
抽象工廠模式(AbstractFarctory)
擅長與創建相關,相互依賴的系列類,把正在創建類實例的工作下放到子類工廠去操作
抽象工廠是對一系列的類創建工作,提出的一種解決方案
生成器模式(Builder)
創建一個有多個類,按照一定業務邏輯組合的復合型類
針對復雜類創建工作提出的解決方案
創建型模式