不懂使用為學過,說出用途,繪製結構為了解,不會靈活使用基本等於沒學。
工廠模式是最為常用的一種建立型設計模式,通常說的工廠模式是工廠方法模式,它也是頻繁使用的最高的工廠模式,
現在我來介紹下簡單工廠模式,簡單工廠模式算的上是工廠方法模式的小老弟,它不屬於gof23中設計模式,但是在軟體開發
中應用也比較頻繁,學會了它,其他的工廠模式也算是入了門
工廠模式通常用於建立物件,定義乙個工廠類,它可以根據不同的引數來返回不同類的例項,被建立的例項通常都是具有共同的父類。
因為工廠模式中用於建立例項的方法是靜態的方法,因為簡答工廠模式又被稱作為靜態工廠模式(static factory method),是建立型模式的一種
(1)、工廠模式包含必要的判斷邏輯,可以決定在什麼時候建立哪乙個產品類的例項,客戶端可以免除直接建立產品物件的職責,而
僅僅"消費"產品。簡單工廠模式實現了物件建立和使用的分離。
(2)、客戶端無需知道所建立的具體產品類的類名,只需要知道具體產品類所對應的引數,對於一些複雜的類名,可以一定程度上減少使用者的記憶量
(3)、通過引入配置檔案,可以在不需要修改任何客戶端的情況下更換和增加新的具體產品類,在一定程度上提高了系統的靈活性
(1)、簡單工廠模式由於集合了所有產品類的建立邏輯,職責過於沉重,一旦不能正常工作,那麼整個系統都將受到影響。
(2)、使用簡單工廠模式勢必會增加系統中類的個數(畢竟引入了新的工廠類),增加了系統的複雜度和難理解程度。
(3)、系統擴充套件困難,一旦新增新產品就不得不修改工廠邏輯,在產品型別較多時,會造成工廠邏輯過於複雜,不利於系統的擴充套件和維護
(4)、由於簡單工廠模式使用了靜態的方法,所以造成工廠角色無法形成基於繼承的等級結構
以下情況下可以考慮使用簡單工廠模式
(1)、工廠類負責建立的物件較少,由於建立的物件較少,不會造成工廠方法中的業務邏輯過於複雜
(2)、客戶端只知道傳入工廠類的引數,對於如何建立物件並不關心
uml圖
src結構圖
* 輔助類,讀取xml文件中的配置來實現無需更改源**來改變工廠模式的引數,從而符合開閉原則
* 使用者可以通過配置檔案修改需要例項化的物件
*/public class xmlutil catch (exception e)}}
xml檔案
<?xml version="1.0" encoding="utf-8" ?>
histogram
line
ple
設計模式 工廠模式之簡單工廠模式
定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...
設計模式 工廠模式之簡單工廠
工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...
設計模式 工廠模式之簡單工廠
我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...