2、例項講解
3、優缺點
4、應用場景
工廠方法模式是一種建立型設計模式,又稱工廠模式、多型工廠模式和虛擬構造器模式,通過定義工廠父類負責定義建立物件的公共介面,而子類則負責生成具體的物件。
將類的例項化(具體產品的建立)延遲到工廠類的子類(具體工廠)中完成,即由子類來決定應該例項化(建立)哪乙個類。
解決的問題:工廠一旦需要生產新產品就需要修改工廠類的方法邏輯,違背了「開放 - 關閉原則
簡單工廠模式的缺點
之所以可以解決簡單工廠的問題,是因為工廠方法模式把具體產品的建立推遲到工廠類的子類(具體工廠)中,此時工廠類不再負責所有產品的建立,而只是給出具體工廠必須實現的介面,這樣工廠方法模式在新增新產品的時候就不修改工廠類邏輯而是新增新的工廠子類,符合開放封閉原則,克服了簡單工廠模式中缺點。
組成(角色)
關係作用
抽象產品(product)
具體產品的父類
描述具體產品的公共介面
具體產品(concrete product)
抽象產品的子類;工廠類建立的目標類
描述生產的具體產品
抽象工廠(creator)
具體工廠的父類
描述具體工廠的公共介面
具體工廠(concrete creator)
抽象工廠的子類;被外界呼叫
描述具體工廠;實現factorymethod工廠方法建立具體產品的示例
步驟1:建立抽象產品類,定義具體的公共介面
public
abstract
class
product
步驟2:建立抽象工廠類,定義具體工廠的公共介面
public
abstract
class
factory
步驟3:建立具體產品類(繼承抽象產品類),定義生產的具體產品
public
class
producta
extends
product
}public
class
productb
extends
product
}
步驟4:建立具體工廠類(繼承抽象工廠類),定義建立對應具體產品示例的方法
public
class
factorya
extends
factory
}public
class
factoryb
extends
factory
}
步驟5:外界通過呼叫具體工廠類的方法,從而建立不同具體產品類的例項
public
class
factorypattern
}結果:
生產安卓手機
生產蘋果手機
設計模式 工廠方法模式
一 工廠方法 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...