我從來沒有真正看過工廠模式,今天決定花費時間,並根據這篇文章(http://msdn.microsoft.com/en-us/library/ee817667.aspx)創建一個快速樣本,最終讓我的頭。工廠模式爲何如此工作?
源代碼完美地安排在三個單獨的組件中,整齊地命名爲Product,Factory和Client。
工廠模式的主要好處(據我所知)是從「客戶」類抽象「產品」類的實例化。因此,在所提供的示例中,產品實例化不會隨產品類的任何更改而發生變化,您仍然必須對客戶端類進行更改以傳遞創建更新產品所需的新值。這些數據畢竟必須來自某個地方?
我讀過的另一個例子說,一旦一個類被實現並且其他類的負載直接使用它,在這裏對「產品」類所做的更改將需要對該類的每個實例進行更改,比如說例如,如果在其構造函數中需要一個新變量。
從我所能理解的情況來看,Factory模式確實可以確保這個類的實例永遠不會改變,如果你想將一個新變量傳遞給產品構造函數,那麼你最終不得不將這些新變量傳遞給更新改爲工廠。
因此,這顯然不能解決問題,但僅僅移動它並且這樣做會增加額外的複雜性。
鑑於這是一種既定的模式,我顯然缺少一些東西。因此,這篇文章:請向我解釋我缺少的東西。
感謝
這也可能是很好的補充說,工廠模式通常處理相關類型的層次結構的創建,而不僅僅是一個。 – Grozz 2011-01-28 13:09:28