背景
簡單工廠模式雖然簡單,但是存在乙個嚴重的問題,當有新的產品時,需要更改工廠類的**,從而違反了開閉原則,而工廠方法模式應運而生。
介紹工廠方法模式/虛擬構造器模式/多型工廠模式:針對不同的產品提供不同的工廠。定義乙個用於建立物件的介面,讓子類決定哪乙個類被例項化。將類的例項化過程延遲到子類。角色
與簡單工廠模式對比
與簡單工廠模式相比,工廠模式最大的不同是引入了抽象工廠的角色,抽象工廠可以是介面,抽象類或具體類
示例**
//抽象工廠類
public
inte***ce
factory
//產品a具體工廠
public
class
concretefactorya
implements
factory
}
//產品b具體工廠
public
class
concretefactoryb
implements
factory
}
//抽象產品類
public
abstract
class
product
//抽象方法
abstract
public
void
methoddiff();
}
//具體產品類a
public
class
concreteproducta
extends
product
}
//具體產品類b
public
class
concreteproductb
extends
product
}
//客戶端
public
class
client
}
設計模式 工廠方法模式
一 工廠方法 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...