一、概念編程
簡單工廠模式屬於建立型模式,但不屬於23種GOF設計模式之一,稱爲靜態工廠方法(Static Factory Method)模式,能夠根據參數的不一樣返回不一樣的類實例。 設計模式
二、模式結構bash
三、使用場景ide
四、優缺點ui
優勢:spa
缺點:設計
五、實例code
建立抽象產品類,定義具體產品的公共接口cdn
public abstract class AbsPhone {
abstract String getName();
abstract void setTheme();
}
複製代碼
建立具體產品類(繼承抽象產品類),定義生產的具體產品對象
public class HuaweiPhone extends AbsPhone {
private String name = "Huawei";
@Override
String getName() {
return name;
}
@Override
void setTheme() {
// 根據手機設置不一樣主題
}
}
public class XiaomiPhone extends AbsPhone {
private String name = "Xiaomi";
@Override
String getName() {
return name;
}
@Override
void setTheme() {
// 根據手機設置不一樣主題
}
}
複製代碼
建立工廠類,經過建立靜態方法從而根據傳入不一樣參數建立不一樣具體產品類的實例
public class Factory {
public static AbsPhone createPhone(String type) throws Exception {
AbsPhone phone = null;
switch (type) {
case "Huawei":
phone = new HuaweiPhone();
break;
case "Xiaomi":
phone = new HuaweiPhone();
break;
}
if (phone == null) {
throw new Exception("傳入參數不正確");
}
return phone;
}
}
複製代碼