一.概述
簡單工廠模式是類的創建模式,又叫做靜態工廠方法(Static Factory Method)模式,是由一個工廠對象決定創建出哪一種產品類的實例。
二.代碼演示
/**
* Created by John on 2018/6/22.
* 簡單工廠模式(靜態工廠方法模式)
*/
public class SimplePizzaFactory {
public static Pizza createPizza(PizzaType pizzaType) {
Pizza pizza = null;
switch (pizzaType) {
case CHEESE:
pizza = new CheesePizza();
break;
case GREEK:
pizza = new GreekPizza();
break;
default:pizza = new CheesePizza();
}
return pizza;
}
}
public interface Pizza {
void eat();
}
public class CheesePizza implements Pizza{
@Override
public void eat() {
System.out.println("eat cheese");
}
}
public class GreekPizza implements Pizza {
@Override
public void eat() {
System.out.println("eat greek");
}
}
public enum PizzaType {
CHEESE(1,"cheese"),
GREEK(2,"greek")
;
private int type;
private String desc;
PizzaType(int type, String desc) {
this.type = type;
this.desc = desc;
}
}
@Test
public void testSimpleFactory(){
PizzaType pizzaType = PizzaType.GREEK;
Pizza pizza = SimplePizzaFactory.createPizza(pizzaType);
pizza.eat();
}
三.總結
簡單工廠模式的優點:
模式的核心是工廠類。這個類含有必要的判斷邏輯,可以決定在什麼時候創建哪一個產品類的實例。而客戶端則可以免除直接創建對象的責任。簡單工廠模式通過這種做法實現了對責任的分割。
簡單工廠模式的缺點:
這個工廠類集中了所有的創建邏輯,當有複雜的多層次等級結構時,所有的業務邏輯都在這個工廠類中實現。什麼時候它不能工作了,整個系統都會受到影響。並且簡單工廠模式違背了開閉原則(對擴展的開放,對修改的關閉)。