先理解一下為什麼要使用工廠模式:
工廠模式是我們最常用的例項化物件模式
工廠模式實際上包含了3中設計模式,簡單工廠,工廠和抽象工廠,關鍵點如下:
一、三種工廠的實現是越來越複雜的
二、簡單工廠通過構造時傳入的標識來生產產品,不同產品都在同乙個工廠中生產,這種判斷會隨著產品的增加而增加,給擴充套件和維護帶來麻煩
三、工廠模式無法解決產品族和產品等級結構的問題
四、抽象工廠模式中,乙個工廠生產多個產品,它們是乙個產品族,不同的產品族的產品派生於不同的抽象產品(或產品介面)。
先看一下我們不使用工廠模式,怎麼建立例項,我們以類sample為例
sample sample=new sample(引數);
帶有引數的初始化,可以使用sample的建構函式,隨著引數的增加,建構函式需要重構,如果系統中多處例項化sample,就需要修改大量的**。
專案中什麼地方用到工廠模式?
如解析xml中,jdbc連線資料庫等
public class factory
}
那麼在你的程式中,如果要建立isample的實列時候可以使用
isample samplea=factory.creator(1);
簡單工廠模式有乙個問題就是,類的建立依賴工廠類,也就是說,如果想要拓展程式,必須對工廠類進行修改。假如增加其他品牌滑鼠,工廠類需要修改,如何解決?就用到工廠方法模式,建立乙個工廠介面和建立多個工廠實現類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的**。
以日誌框架舉例工廠方法模式:
當我們有新的日誌框架加入進來的時候,就不需要修改logge***ctory類的源**,只需要新建乙個類,如log1factory來實現就可以。
抽象工廠模式中,乙個工廠生產多個產品,它們是乙個產品族,不同的產品族的產品派生於不同的抽象產品(或產品介面)。
java的知識點30 設計模式
核心作用 保證乙個類只有乙個例項,並且提供乙個訪問該例項的全域性訪問點 單例模式的優點 由於單例模式只生成乙個例項,減少了系統效能開銷,當乙個物件的產生需要比較多的資源時,如讀取配置 產生其他依賴物件時,則可以通過在應用啟動時直接產生乙個單例物件,然後永久駐留記憶體的方式來解決 常見的五種單例模式實...
設計模式 設計模式的知識點梳理
學習設計模式,首先要弄明白我們什麼要學習它,其次需要呀弄明白地就是它包含了哪些知識點。設計模式學習地知識點包含5個部分,物件導向 設計原則 設計模式 編碼規範以 重構。物件導向 現在,主流的程式設計正規化或者是程式設計風格有三種,它們分別是面向過程 物件導向和函式式程式設計。物件導向這種風格又是其中...
設計模式知識點總結
什麼是設計模式?答 christopher alexander說過 每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及該問題解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重複勞動。簡單來講,設計模式就是經驗的總結。設計模式的分類 23種 答 建立型模式 5種 單例模式 抽象工廠模式 工...