PHP設計模式之工廠方法設計模式例項分析

2022-10-06 07:45:12 字數 1312 閱讀 1223

一、什麼是工廠方法模式

作為一種建立型設計模式,工廠方法模式就是要建立「某種東西」。對於工廠方法,要建立的「東西」是乙個產品,這個產品與建立它的類之間不存在繫結。實際上,為了保持這種松耦合,客戶會通過乙個工廠發出請求,再由工廠建立所請求的產品。利用工廠方法模式,請求者只發出請求,而不具體建立產品。

二、什麼時候使用工廠方法模式

如果例項化物件的子類可能改變,就要使用工廠方法模式。

三、一般工廠方法模式

使用一般工廠方法模式時,客戶只包含工廠的引用,乙個工廠生產一種產品。增加一種產品的同時需要增加乙個新工廠類和乙個新產品類。

<?php /**

* 一般工廠方法設計模式

**///工廠抽象類

abstract class factory

}//文字工廠

class textfactory extends factory

}//影象工廠

class imagefactory extends factory

}//產品類介面

inte***ce product

//文字產品

class textproduct implements product

}//圖程式設計客棧像產品

class imageproduct implements product

}//客戶類

class client

}$client = new client();

/*執行結果:

此處為文字

此處為影象

*/?>

四、引數化工廠方法模式

使用引數化工廠方法模式時,客戶包含工廠和產品的引用,發出請求時需要指定產品的種類,乙個工廠生產多種產品。增加一種產品時只需要增加乙個新產品類即可。

<?php /**

* 引數化工廠方法設計模式

**///工廠抽象類

abstract class factory

}//工廠實現

class concretefactory extends factory

}//產品類介面

inte***ce product

//文字產品

class textproduct implements product

}//影象產品

class imageproduct implements product

}//客戶類

class client

}$client = new client();

/*執行結果:

此處為文字

此處為影象

*/?>

設計模式之工廠方法模式VS簡單工廠方法模式

名詞解釋 簡單工廠 這個實在是沒什麼解釋的,就是乙個工廠類,然後有乙個方法,根據傳遞的引數可以通過switch 你也可以是if,或者是使用高階的反射 來進行物件的建立。工廠方法 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。區別 簡單工廠的優點是工廠類中...

PHP設計模式之工廠方法模式

以下文字部分均為本人自己的想法與總結所以未必正確 部分摘錄自 工廠方法模式 優點 彌補了簡單工廠的確點,即當要修改類的時候工廠類也需要做出相對應的更改。之所以可以解決簡單工廠的問題,是因為工廠方法模式把具體產品的建立推遲到工廠類的子類 具體工廠 中,此時工廠類不再負責所有產品的建立,而只是給出具體工...

設計模式之簡單工廠 工廠方法模式 抽象工廠模式

這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...