工廠模式按照《Java與模式》中的提法分爲三類:
1. 簡單工廠模式(Simple Factory)
2. 工廠方法模式(Factory Method)
3. 抽象工廠模式(Abstract Factory)
這三種模式從上到下逐步抽象,並且更具一般性。 一般使用簡單工廠模式與工廠方法模式相結合的方式來減少工廠類:即對於產品樹上類似的種類(一般是樹的葉子中互爲兄弟的)使用簡單工廠模式來實現。來看看抽象工廠模式的各個角色(和工廠方法的如出一轍): 抽象工廠角色:這是工廠方法模式的核心,它與應用程序無關。
工廠模式有三個參與者,抽象產品(Product)、工廠(Creator)和具體產品(ConcreteProduct)。客戶只會看到工廠和抽象產品。
public interface Product {
public String getName();
}
public class ConcreteProduct implements Product {
public String getName() {
return "產品1";
}
}
public class Creator {
public static Product create1() {
return new ConcreteProduct();
}
}
工廠模式的作用在於將創建具體產品的方法由工廠類控制,客戶只需要知道產品的抽象類型