一、工廠方法(factory method)
工廠方法用來解決在類a中new類b的物件時,類a對類b(具體類)的依賴,即類a和類b之間的緊耦合。
解決思路:建立工廠類,包括乙個工廠基類和繼承自該工廠基類的具體工廠類,將物件建立(new)放到具體的工廠類中,使類a依賴工廠基類,而非具體類。
在gof《設計模式》中,工廠方法的定義為:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使得乙個類的例項化延遲(目的:解耦,手段:虛函式)到子類。
二、抽象工廠(abstract factory)
抽象工廠與工廠方法的共同點是:都是用來解決物件建立時的緊耦合問題;不同點是:抽象工廠可以用來解決一系列相關物件的建立。
例如,a1、b1是相關的類,a2、b2是相關的類;在實際使用中,建立了a1的物件,接下來就要建立b1的物件,a2、b2同理。如果將a1、b1的建立放在兩個不同的工廠類中,a2、b2的建立放在兩個不同的工廠類中,容易導致——如果使用者傳入的工廠是a1、b2的工廠類,程式就會出現嚴重錯誤。為了避免這個問題,可以將a1、b1的建立放在同乙個工廠類的兩個不同方法中,a2、b2同理。
在gof《設計模式》中,抽象工廠的定義為:提供乙個介面,讓該介面負責建立一系列「相關或者相互依賴的物件」,無需指定它們具體的類。
設計模式 工廠模式(工廠方法 抽象工廠)
1 工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。正如建立交通工具,可以通過不同的工廠方法建立所需的物件。類圖 對比 1 工廠方法在產品維度,即類圖中movable方向拓展比較方便,只需增加對應的類及相應的工廠方...
設計模式 簡單工廠 工廠方法 抽象工廠方法模式
簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...
設計模式 工廠方法模式與抽象工廠模式
這兩天抽空學習一下設計模式,剛開始遇到工廠模式,感覺工廠方法模式和抽象工廠模式的區別有點模糊,看了之前的面試資料也是有點區分不清,於是查閱一些網上的資料和部落格,記錄一下。1,工廠方法模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使得乙個類的例項化延遲到了子類 工廠方法在簡單工...