23種設計模式-方法工廠模式
- 2019 年 10 月 4 日
- 筆記
關注我1
1
寫在前面的話
這次我們來學習方法工廠模式
• 工廠方法模式要點:
– 為了避免簡單工廠模式的缺點,不完全滿足OCP。
– 工廠方法模式和簡單工廠模式最大的不同在於,簡單工廠模式只有一個(對於一個項目或者一個獨立模組而言)工廠類,而工廠方法模式有一組實現了相同介面的工廠(用來生產同一等級結構中的固定產品,支援增加任意產品)
2
方法工廠模式

我仍然用一個程式碼示例來進行講解!
1. 首先跟簡單工廠一樣寫出Animal介面和Dog,Cat兩個類,這裡我就不寫出程式碼了,要看程式碼的朋友可以看上一篇文章。
2. 我們首先創建AnimalFactory介面:
public interface AnimalFactory { Animal createAniaml(); }
3. 繼續創建DogFactory,CatFactory類,並繼承AnimalFactory介面
public class CatFactory implements AnimalFactory{ @Override public Animal createAniaml() { return new Cat(); } }
public class DogFactory implements AnimalFactory{ @Override public Animal createAniaml() { return new Dog(); } }
4.最後我們來測試一下我們的程式碼:
public class Test { public static void main(String[] args){ Animal a1 = new DogFactory().createAniaml(); Animal a2 = new CatFactory().createAniaml(); a1.speak(); a2.speak(); } }
運行結果:
汪汪汪! 喵喵喵! Process finished with exit code 0
分析:相比較於簡單工廠模式,方法工廠模式雖然解決了OCP的問題,但是它有一個很不好的地方-就是結構太複雜,因為我們多創建了兩個工廠類,如果我們今後要加一些工廠時,我們需要創建很多的類,所以如今這種模式使用的比較少,大多數仍然為簡單工廠模式。
請繼續關注下一篇文章 —- 抽象工廠模式