簡單工廠模式

我喜歡簡單、粗獷、暴力、有說服力的方式 ヾ(?■_■)ノ
筆記一下,不能入圍GOF的23種設計模式的第24種設計模式
學習地址,膜拜大神

定義:從設計模式的類型上來說,簡單工廠模式是屬于創建型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬于23種GOF設計模式之一。
簡單工廠模式是由一個工廠對象決定創建出哪一種產品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。

既然是工廠對吧!那就開始生產東西了,以下汽車為例

package com.yexue.example.design_mode.single_factory;

public class Test {
    public static void main(String[] args) {
        /**
         * 需求:我要一輛寶馬
         * 實現:調用汽車工廠生產寶馬
         */
        ICar car = CarFactory.createCar("BaoMa");
        System.out.println(car.biaozhi());
    }

}

然后找到汽車工廠準備生產汽車了

package com.yexue.example.design_mode.single_factory;
/***
 * 簡單工廠模式
 * @author yexue
 * @expl 車的工廠類
 * @time 2017年8月31日 下午2:38:00
 */
public class CarFactory {
    private CarFactory(){}
    
    /**
     * 以寶馬和紅旗為例
     * @param type
     * @return
     */
    public static ICar createCar(String type) {
        if(type.equals("BaoMa")){//寶馬
            return new BaoMaCar();
        }else if(type.equals("HongQi")){
            return new HongQiCar();//紅旗
        }else{
            throw new RuntimeException();
        }
    }

}

生產汽車的按照汽車的樣子來生產
汽車模型

package com.yexue.example.design_mode.single_factory;

/**
 * 簡單工廠模式
 * 
 * @author yexue
 * @expl 車模型
 * @time 2017年8月31日 下午2:36:52
 */
public interface ICar {
    /**
     * 車標
     */
    public String biaozhi();
    //其他車的屬性
    //車門、大燈、玻璃、座位、輪胎、發動機....

}

按照車模型產出來的汽車

寶馬

package com.yexue.example.design_mode.single_factory;
/**
 * 簡單工廠模式
 * @author yexue
 * @expl 寶馬
 * @time 2017年8月31日 下午2:57:26
 */
public class BaoMaCar implements ICar{

    @Override
    public String biaozhi() {
        return "寶馬";
    }

}

紅旗

package com.yexue.example.design_mode.single_factory;
/**
 * 簡單工廠模式
 * @author yexue
 * @expl 紅旗
 * @time 2017年8月31日 下午2:56:30
 */
public class HongQiCar implements ICar{
    @Override
    public String biaozhi() {
        return "紅旗";
    }
    

}

就是這么粗獷、暴力


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容