Java多執行緒-57-工廠方法設計模式
阿新 • • 發佈:2019-01-13
這篇,我們來介紹工廠方法模式。工廠方法模式和前面的簡單工廠模式區別就是,我們先定義一個Factory的介面,裡面寫一個createAnimal的方法。然後Dog就建立DogFactory工廠類,Cat就建立CatFactory工廠類。如果還有其他動物,就建立其他動物的工廠類。這樣我們就不用去修改原始的Factory工廠類。這個應用,其實我們在做Selenium POM的時候用到了這種設計模式。
1.程式碼檔案和結構
上面三個檔案Animal.java和Dog.java和Cat.java程式碼沒有改變。
Factory.java 介面內容
package samplefactory; public interface Factory { public Animal createAnimal(); }
DogFactory.java
package samplefactory;
public class DogFactory implements Factory {
@Override
public Animal createAnimal() {
return new Dog();
}
}
CatFactory.java
package samplefactory; public class CatFactory implements Factory { @Override public Animal createAnimal() { return new Cat(); } }
Test.java
package samplefactory; public class Test { public static void main(String[] args) { DogFactory df = new DogFactory(); Dog d = (Dog) df.createAnimal(); d.eat(); CatFactory cf = new CatFactory(); Cat c = (Cat) cf.createAnimal(); c.eat(); } }
這種工廠方法設計模式,優缺點如下
優點:
客戶端不需要再負責物件的建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的程式碼,
後期維護容易,增強了系統的擴充套件性。
缺點:
需要額外的編寫程式碼,增加了工作量。