## 工廠設計模式
工廠模式是一種常用的設計模式,通常在以下情況下使用:
1. **對象的創建需要根據不同的條件進行變化**:工廠模式可以根據不同的條件或參數來創建不同的對象,這樣可以實現更靈活的對象創建。
2. **隱藏對象創建的細節**:通過工廠模式,客戶端代碼不需要知道對象的創建細節,只需要通過工廠方法或工廠類來獲取所需的對象,從而降低了耦合度。
3. **對象的創建邏輯可能發生變化**:如果對象的創建邏輯可能發生變化,例如需要根據用戶輸入來動態選擇創建哪種對象,使用工廠模式可以更方便地進行管理和調整。
4. **對象的創建涉及復雜邏輯或依賴其他對象**:當對象的創建過程涉及到復雜的邏輯或需要依賴其他對象時,使用工廠模式可以將這些邏輯封裝在工廠中,讓客戶端代碼更簡潔。
總的來說,工廠模式適用于需要根據不同條件創建對象、需要隱藏對象創建細節、對象創建邏輯可能變化、或者創建過程涉及復雜邏輯的情況。
###
提供了一種創建對象的最佳方式,我們在創建對象的時候不會對客戶端暴露創建邏輯,并且是通過使用一個共同的接口來指向新創建的對象。
###
比如業務開發中,支付很常見,里面有統一下單和支付接口,具體的支付實現可以是微信、支付寶、銀行卡等,我們就可以利用工廠模式來實現不同形式的微信支付方式。
###
## 工廠模式的三種不同實現方式
###
**簡單工廠模式**:通過傳入相關的類型來返回相應的類,這種方式比較單一,可擴展性相對較差;
**工廠方法模式**:通過實現類實現相應的方法來決定相應的返回結果,這種方式的可擴展性比較強;
**抽象工廠模式**:基于上述兩種模式的擴展,且支持細化產品。
###
## 應用場景
###
解耦:分離職責,把復雜對象的創建和使用的過程分開
復用代碼,降低維護成本:
如果對象創建復雜且多出需要使用,如果每處都進行編寫,則很多重復代碼,如果業務邏輯發生了改變,則需要四處修改;
使用工廠模式統一創建,則只要修改工廠類即可,降低成本。
###
- 設計模式六大原則
- 常見的三大設計模式分類
- 創建型模式之單例模式
- 單例模式之懶漢
- 單例模式之餓漢
- 單例模式之如何選擇懶漢餓漢
- 什么情況下使用單例模式
- 創建型模式之工廠模式
- 簡單工廠模式
- 工廠方法模式
- 抽象工廠模式
- 創建型模式之原型模式
- 創建型模式之建造者模式
- 結構型模式之適配器模式
- 接口的適配器模式
- 類的適配器模式
- 結構型模式之橋接模式
- 結構型模式之橋接模式和適配器模式的區別
- 結構型模式之裝飾器模式
- 結構型模式之代理模式
- 結構模式之外觀模式
- 結構模式之享元模式
- 行為模式之策略模式
- 行為模式之模板模式
- 行為模式之觀察者模式
- 行為模式之責任鏈模式
- 行為模式之命令模式
- 行為模式之迭代器模式
- 行為模式之備忘錄模式
- 行為模式之狀態模式