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

2021-09-08 07:25:50 字數 1302 閱讀 3798

一、什麼是工廠方法模式

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

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

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

三、一般工廠方法模式

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

01<?php 02 /** 03 一般工廠方法設計模式 04 */ 05 //工廠抽象類 06 abstract class factory 07 14 } 15 //文字工廠 16 class textfactory extends factory 17 23 } 24 //影象工廠 25 class imagefactory extends factory 26 32 } 33 //產品類介面 34 inte***ce product 35 38 //文字產品 39 class textproduct implements product 40 47 } 48 //影象產品 49 class imageproduct implements product 50 57 } 58 //客戶類 59 class client 60 70 } 71 $client = new client(); 72 /執行結果: 73 此處為文字 74 此處為影象 75 */ 76 ?>

四、引數化工廠方法模式

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

view source

print?01

<?php 02 /** 03 引數化工廠方法設計模式 04 */ 05 //工廠抽象類 06 abstract class factory 07 14 } 15 //工廠實現 16 class concretefactory extends factory 17 22 } 23 //產品類介面 24 inte***ce product 25 28 //文字產品 29 class textproduct implements product 30 37 } 38 //影象產品 39 class imageproduct implements product 40 47 } 48 //客戶類 49 class client 50 62 } 63 $client = new client(); 64 /執行結果: 65 此處為文字 66 此處為影象 67 */ 68 ?>

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

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

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

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

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

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