工廠模式有以下幾種形態:
簡單工廠(****** factory)模式
工廠方法(factory method)模式,又稱多形性工廠(polymorphic factory)模式
抽象工廠(abstract factory)模式,又稱工具箱(kit或toolkit)模式
在簡單工廠模式中,乙個工廠類處於對產品類例項化呼叫的中心位置上,它決定那乙個產品類應當被例項化, 如同乙個交通警察站在來往的車輛流中,決定放行那乙個方向的車輛向那乙個方向流動一樣。
[img]
工廠方法模式是簡單工廠模式的進一步抽象化和推廣,工廠方法模式裡不再只由乙個工廠類決定那乙個產品類應當被例項化,這個決定被交給子類去作。
[img]
工廠方法模式和簡單工廠模式在定義上的不同是很明顯的。工廠方法模式的核心是乙個抽象工廠類,而不像簡單工廠模式, 把核心放在乙個實類上。工廠方法模式可以允許很多實的工廠類從抽象工廠類繼承下來, 從而可以在實際上成為多個簡單工廠模式的綜合,從而推廣了簡單工廠模式。
反過來講,簡單工廠模式是由工廠方法模式退化而來。設想如果我們非常確定乙個系統只需要乙個實的工廠類, 那麼就不妨把抽象工廠類合併到實的工廠類中去。而這樣一來,我們就退化到簡單工廠模式了。
抽象工廠模式是所有形態的工廠模式中最為抽象和最具廣泛性的一種形態,抽象工廠模式是工廠方法模式的進一步擴廣化和抽象化。如下圖:
[img]
在抽象工廠模式中,抽象產品 (abstractproduct) 可能是乙個或多個,從而構成乙個或多個產品族(product family)。 在只有乙個產品族的情況下,抽象工廠模式實際上退化到工廠方法模式。
[color=red]總結: 簡單工廠模式是由乙個具體的類去建立其他類的例項,父類是相同的,父類是具體的。
工廠方法模式是有乙個抽象的父類定義公共介面,子類負責生成具體的物件,這樣做的目的是將類的例項化操作延遲到子類中完成。
抽象工廠模式提供乙個建立一系列相關或相互依賴物件的介面,而無須指定他們具體的類。它針對的是有多個產品的等級結構。而工廠方法模式針對的是乙個產品的等級結構。[/color]
[color=blue]這個是我學這三種模式的體會,怕忘掉,就寫下來了,如果有什麼錯誤請指正,呵呵[/color]
工廠模式簡介
簡介 工廠模式 專門負責有大量公共介面的類。它可以動態地決定哪乙個類例項化,而不必事先知道要例項化那個類。客戶類和工廠類是分開的。當然工廠模式也存在著缺點 當產品修改時,工廠類也要做出相應的改變。工廠模式的作用 系統可以在不修改具體工廠角色的情況下引進新的產品 客戶端不必關心物件的建立,把物件的建立...
工廠模式簡介
工廠模式就是用工廠提供的方法代替了使用new建立物件的操作,將建立物件統一管理和控制從而將呼叫者與實現類進行解耦,實現了建立者與呼叫者的分離。工廠模式的分類 簡單工廠模式 靜態工廠 工廠方法模式 抽象工廠 有的地方也叫作靜態工廠,實際上它並不算是設計模式,可以稱之為工廠方法和抽象工廠的基礎。靜態工廠...
工廠物件模式簡介
在gof的 設計模式 一書中,對factory method object method 意圖描述如下 定義乙個用於建立物件的介面,讓子類決定例項化是哪乙個類。factory metho是乙個類的例項化延遲到其子類。其結構圖如下 其中,類 product 定義了一類物件的介面。concretepro...