一、什麼是工廠方法模式
作為一種建立型設計模式,工廠方法模式就是要建立「某種東西」。對於工廠方法,要建立的「東西」是乙個產品,這個產品與建立它的類之間不存在繫結。實際上,為了保持這種松耦合,客戶會通過乙個工廠發出請求,再由工廠建立所請求的產品。利用工廠方法模式,請求者只發出請求,而不具體建立產品。
二、什麼時候使用工廠方法模式
如果例項化物件的子類可能改變,就要使用工廠方法模式。
三、一般工廠方法模式
使用一般工廠方法模式時,客戶只包含工廠的引用,乙個工廠生產一種產品。增加一種產品的同時需要增加乙個新工廠類和乙個新產品類。
<?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...