工廠方法模式主要彌補了簡單工廠模式的缺陷。
工廠方法模式定義了乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,僅負責具體工廠子類必須實現的介面。
這樣一來,工廠方法模式就滿足了開閉原則。
有兩個產品類,producta 和 productb,都實現了產品的介面 iproduct。
對應了兩個工廠類,factorya 和 factoryb,分別負責生產產品 producta 和 productb。而這兩個工廠類都實現了介面 ifactory。
類之間的關係如下:
具體**實現如下:
產品介面 iproduct
public
inte***ce
iproduct
產品類 producta
public
class
producta
implements
iproduct
}
產品類 productb
public
class
productb
implements
iproduct
}
工廠介面 ifactory
public
inte***ce
ifactory
生產 producta 的工廠類 factorya
public
class
factorya
implements
ifactory
}
生產 productb 的工廠類 factoryb
public
class
factoryb
implements
ifactory
}
測試類 test
public
class
test
}
執行結果
工廠方法模式彌補了簡單工廠的缺陷。簡單工廠方法通過傳入乙個 name ,再建立相應的產品。而工廠方法模式對每乙個產品都生成了相應的工廠類。而當出現新的產品時,只需要新生成該產品類和對應得工廠類即可。滿足了開閉原則——對擴充套件開放,對修改封閉。
但是,由於每乙個產品都對應了兩個類(乙個產品類,乙個工廠類),當產品數量很多時,類的數量也會變得很多。
設計模式 工廠方法模式
一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...
設計模式 工廠方法模式
1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...
設計模式 工廠方法模式
框架的基礎知識 對框架的理解 框架和設計模式的關係 工廠方法模式 定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到其子類。結構 產品 public inte ce product 具體產品 public class productimpl...