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的問題,但是它有一個很不好的地方-就是結構太複雜,因為我們多創建了兩個工廠類,如果我們今後要加一些工廠時,我們需要創建很多的類,所以如今這種模式使用的比較少,大多數仍然為簡單工廠模式。

請繼續關注下一篇文章 —- 抽象工廠模式