設計模式---簡單工廠模式

一.概述
簡單工廠模式是類的創建模式,又叫做靜態工廠方法(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();
    }

三.總結
簡單工廠模式的優點:
模式的核心是工廠類。這個類含有必要的判斷邏輯,可以決定在什麼時候創建哪一個產品類的實例。而客戶端則可以免除直接創建對象的責任。簡單工廠模式通過這種做法實現了對責任的分割。
簡單工廠模式的缺點:
這個工廠類集中了所有的創建邏輯,當有複雜的多層次等級結構時,所有的業務邏輯都在這個工廠類中實現。什麼時候它不能工作了,整個系統都會受到影響。並且簡單工廠模式違背了開閉原則(對擴展的開放,對修改的關閉)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章