最近對于設計模式中的工廠三姐妹——大姐(抽象工廠)、二姐(工廠模式)、三姐(簡單工廠),進一步學習了,以下是我的一些認識。
### 一、簡單工廠

運用了一個單獨的類將創建實例的過程獨立出來,這就是簡單工廠類,如:簡單運算工廠類,至于在運用的過程中,如果增加運算運算,需要修改運算工廠類,這就違背了
開放—封閉原則(盡可能使代碼做到擴展的開放,更改的封閉,也就是對于程序的改動通過增加代碼進行,而不是更改現有的代碼)。
### 二、工廠模式

相對于以上的簡單工廠增加了工廠子類,使一個類的實例話延遲到子類,這樣在增加運算的時候只需要增加對應的運算工廠就可以了,這樣就解決了簡單工廠不符合開放-封閉原則的缺點。
**簡單工廠VS工廠方法**
工廠方法解決了簡單工廠加Case判斷的麻煩,但是每次增加運算需要在代碼中增加相關的工廠 并且再去修改客戶端,這樣也是很復雜的。
其實完全可以運用簡單工廠+反射,這樣就比單單的工廠方法簡單多了。
### 三、抽象工廠

抽象工廠易于交換產品系列(一個應用只需要在初始化的過程中出現一次,所以改變應用的具體工廠會很容易),并且將創建實例過程與客戶端分離,產品的具體類名也被具體的工廠實現分離。
但是如果增加功能時,抽象工廠需要修改很多地方,這里就用一個簡單工廠代替了所有具體工廠。
問題又出來了,用簡單工廠會遇到Case判斷分支的麻煩,不過沒關系,前面提到過運用反射這個問題就很容易解決了。
對于工廠三姐妹目前只是了解了這些,相信會在以后的編程路上對她們的理解更加深刻,期待以后的再次相遇。