概念
??工廠方法模式后雷,就是用工廠生產(chǎn)對象的一種創(chuàng)建型模式,主要作用是把對象的創(chuàng)建交由子類進行勉抓。
角色
抽象產(chǎn)品:描述產(chǎn)品的的公共接口。
具體產(chǎn)品:實現(xiàn)抽象產(chǎn)品纵散。
工廠類:根據(jù)傳入的類型隐圾,選擇不同的產(chǎn)品實現(xiàn)。
Code
抽象產(chǎn)品
public interface Product {
void product();
}
具體產(chǎn)品
public class ProductA implements Product{
@Override
public void product() {
System.out.println("ProductA build");
}
}
public class ProductB implements Product{
@Override
public void product() {
System.out.println("ProductB build");
}
}
工廠類
public class ProductFactory {
public static Product getProduct(String productType){
switch(productType){
case "A":
return new ProductA();
case "B":
return new ProductB();
}
return new ProductB();
}
}
客戶端測試類
public class FactoryClient {
public static void main(String[] args) {
ProductFactory.getProduct("A").product();
}
}
結(jié)果
The End
??這就是一個簡單工廠的實現(xiàn)了蜜笤,這樣客戶不需要知道對象的具體創(chuàng)建過程盐碱,只需要知道需要創(chuàng)建哪個對象就行。
優(yōu)點:
??隱藏了對象的具體實現(xiàn)县好。把初始化實例時的工作放到工廠里進行暖混,使代碼更容易維護。
缺點:
?? 添加新產(chǎn)品就不得不修改工廠類的邏輯,一旦這個工廠不能正常工作黔漂,整個系統(tǒng)都會受到影響;
??因此牧嫉,可以在已知對象種類的時候使用該模式减途。