(相關(guān)資料圖)
抽象工廠模式是一種更為高級(jí)的工廠模式,它可以創(chuàng)建多種不同類型的對(duì)象。抽象工廠模式通常由三個(gè)組件組成:抽象工廠,具體工廠和產(chǎn)品族。
抽象工廠是一個(gè)接口或抽象類,它定義了創(chuàng)建產(chǎn)品族所需的方法。抽象工廠可以定義為接口或抽象類,具體取決于您的需求。下面是一個(gè)示例:
interface AbstractFactoryInterface { public function createProductA(); public function createProductB();}在上面的代碼中,我們定義了一個(gè)名為AbstractFactoryInterface的接口,它有兩個(gè)方法:createProductA和createProductB。這些方法將用于創(chuàng)建產(chǎn)品族。
具體工廠是實(shí)現(xiàn)抽象工廠接口或繼承抽象類的類。每個(gè)具體工廠都必須實(shí)現(xiàn)在抽象工廠中定義的所有方法。下面是一個(gè)示例:
class ConcreteFactory1 implements AbstractFactoryInterface { public function createProductA() { return new ProductA1(); } public function createProductB() { return new ProductB1(); }}class ConcreteFactory2 implements AbstractFactoryInterface { public function createProductA() { return new ProductA2(); } public function createProductB() { return new ProductB2(); }}在上面的代碼中,我們定義了兩個(gè)具體工廠:ConcreteFactory1和ConcreteFactory2。它們都實(shí)現(xiàn)了抽象工廠接口,并且實(shí)現(xiàn)了接口中定義的所有方法。ConcreteFactory1將創(chuàng)建ProductA1和ProductB1的實(shí)例,而ConcreteFactory2將創(chuàng)建ProductA2和ProductB2的實(shí)例。
X 關(guān)閉
X 關(guān)閉