1. 程式人生 > >第8章——工廠模式

第8章——工廠模式

1、首先對比回顧簡單工廠模式:
簡單工廠模式最大優點在於,工廠類中包含了必要的邏輯判斷,根據客戶的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。核心是因為簡單工廠內部添加了‘Case’分支條件判斷語句,如果一旦要加一個新的例項類功能,那就必須重新修改工廠類中的邏輯判斷‘Case’語句,這本身違反了“開發-封閉原則”。

2、所以工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點(可以建立多個例項),而且克服了它的缺點。模式圖如下:
在這裡插入圖片描述

3、簡單工廠模式工廠類與邏輯分支‘Case’判斷語句耦合,為了解決此問題,根據依賴倒轉原則,我們把工廠類抽象出一個介面,這個類只有一個方法,就是穿件抽象產品工廠的方法。然後,所有所有要生產具體類的工廠就去實現這個介面,於是我們要新增加功能時,就不需要更改原有的工廠類,只要增加此功能的新類和對應的工廠類即可。

4、關於工廠類的重要理解:
如果說簡單工廠類把全部的邏輯處理功能都由客戶端轉移至簡單工廠,可以理解。但是工廠方法模式再次把邏輯判斷負擔轉向客戶端,而自己單單僅有建立具體物件例項功能,那為什麼還要建工廠?為什麼不由客戶端直接建立功能例項物件?
工廠模式的核心目的就是:集中封裝了物件的建立過程,使得更換物件時,不需要做打的改動就能實現,降低了客戶端與產品物件的耦合。