Java設計模式知識點——工廠模式

先理解一下爲什麼要使用工廠模式:

工廠模式是我們最常用的實例化對象模式

 

工廠模式實際上包含了3中設計模式,簡單工廠,工廠和抽象工廠,關鍵點如下:

一、三種工廠的實現是越來越複雜的

二、簡單工廠通過構造時傳入的標識來生產產品,不同產品都在同一個工廠中生產,這種判斷會隨着產品的增加而增加,給擴展和維護帶來麻煩

三、工廠模式無法解決產品族和產品等級結構的問題

四、抽象工廠模式中,一個工廠生產多個產品,它們是一個產品族,不同的產品族的產品派生於不同的抽象產品(或產品接口)。

 

先看一下我們不使用工廠模式,怎麼創建實例,我們以類Sample爲例

Sample sample=new Sample(參數);

帶有參數的初始化,可以使用Sample的構造函數,隨着參數的增加,構造函數需要重構,如果系統中多處實例化Sample,就需要修改大量的代碼。

項目中什麼地方用到工廠模式?

如解析xml中,jdbc連接數據庫等

1. 簡單工廠

public class Factory{
    public static ISample creator(int which){
        if (which==1)
            return new SampleA();
        else if (which==2)
            return new SampleB();
    }
}

那麼在你的程序中,如果要創建ISample的實列時候可以使用

ISample sampleA=Factory.creator(1);

2.工廠方法模式

簡單工廠模式有一個問題就是,類的創建依賴工廠類,也就是說,如果想要拓展程序,必須對工廠類進行修改。假如增加其他品牌鼠標,工廠類需要修改,如何解決?就用到工廠方法模式,創建一個工廠接口和創建多個工廠實現類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。

以日誌框架舉例工廠方法模式:

 

當我們有新的日誌框架加入進來的時候,就不需要修改LoggerFactory類的源代碼,只需要新建一個類,如Log1Factory來實現就可以。

3.抽象工廠模式

抽象工廠模式中,一個工廠生產多個產品,它們是一個產品族,不同的產品族的產品派生於不同的抽象產品(或產品接口)。

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