什么是工廠模式


什么是工廠模式

文章插圖
誰能通俗說一下什么是工廠模式嗎:
什么是工廠模式

文章插圖
創建一個工廠類,使用這個工廠類來生成實例 。
什么是工廠模式

文章插圖

知道什么是工廠模式么?:
什么是工廠模式

文章插圖
【什么是工廠模式】工廠模式與抽象工廠模式是應用得比較多的構造型模式,先簡單的介紹一下這種構造模式的應用背景:
在開發一個類的過程中,我們一般都要為這個類開發相應的構造函數(不過大部分情況下,.NET開發環境會自動默認創建構造函數),這樣,使用這個類的客戶可以利用構造函數對這個類進行實例化.但是,有時候會出現這種情況:需要使用一個對象的客戶并不知道應該對幾個類中的哪個類進行初始化.面對這個問題,我們可以利用工廠模式定義一個接口,客戶可以使用這個接口創建一個對象.同時我們還可以控制對哪個類進行實例化,實例化過程使用了一個方法,這個方法需要利用外部因素來確定對哪個類進行實例化.有時候,這些外部因素就是一個龐大的研究主題,并且往往會涉及到多個類.為此,抽象工廠模式就應用于這種場合,其目的是為了提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類”,至少“無需指定它們具體的類”符合我們的要求 。
下面就Gof's Design Pattern Framework2.0中的一個UML class diagram及一個通俗易懂的例子來說明一下:
這個圖比較形象直觀,能很清楚的看出抽象工廠與工廠以及客戶之間的關系.
下面就舉個例子來看看:
假如我的程序中有需要一系列的對象,比如bed,desk,chair…, 要想利用他們,我們就必須在程序中根據用戶要求,然后一個個調用 new 操作符來生成他們,這樣客戶程序就要知道相應的類的信息,生成的代碼顯然不夠靈活 。再此它們顯然是一類的,都是furniture,既然如此,我們只要一個生產家具的工廠就可以.我們可以在代碼中不利用具體的類,而只是說明我們需要什么,然后就能夠得到我們想要的對象.
java中的工廠模式是什么意思?:
什么是工廠模式

文章插圖
工廠模式簡單的講就是用工廠方法代替了new的操作,
在通俗點就是說,你new一個對象的時候直接調用工廠方法就行了,
在編程時,需要定義一個工廠接口,由不同的的子類去實現,再定一個具體工廠類,定義一個產生實例的方法,我們通過這個方法來獲得實例就行了,
編程中所說的 工廠模式 是什么意思??:
什么是工廠模式

文章插圖
您好,
工廠模式基本上是最常用的設計模式之一,設計模式通俗的來說就是“做某件事的通用的方法”,這些方法都是被廣泛使用、經過長時間“考驗”的,對于解決某個特定的問題有非常好的效果 。
設計模式基本上到了“軟件設計”的層面,它與具體的程序設計語言無關,也沒有實現,只是包含了一個大致的架構,它是一種思想 。
如果您想學習設計模式,我推薦兩本書:《設計模式:可復用面向對象軟件的基礎》和《設計模式精解》,書很枯燥,但絕對是程序員必讀教材 。
工廠模式我大致解釋一下,比如寫一個word那樣的程序,它可以打開doc、rtf、txt等好幾種文件格式,而對于這些文件的處理方法是不同的,比如txt就不能保存文字顏色字體之類的信息,那么我可能這樣設計:
word主程序,一個類Application,它有一個虛方法叫OpenFile,用來打開指定的文件,然后返回一個Doucument類的實例,這個類可以直接把它的內容顯示在屏幕上,word處理的主體是這個類 。這個Application類還有很多方法比如關閉打印之類的 。
然后從Application類派生出一個子類TxtApplication,父類中OpenFile是虛方法,沒有實現,在子類中重寫這個方法,打開Txt文檔,讀取txt文件,然后返回一個Document類 。
然后再從Application里派生一個子類RichTxtApplication,也重寫OpenFile,它打開rtf文檔,從里面讀取相應的文檔和文檔的格式信息,然后也返回一個Document類 。
最后,根據一定的策略 。
這樣,Application類中的OpenFile方法就叫做工廠方法,這種“一個類希望由它的子類指定它所創建的對象”的方法就是工廠模式 。

推薦閱讀