使用最通俗的語言對工廠模式進行詮釋就是:將建立物件的交給工廠。
ps:工廠模式主要是用來建立公用物件的
工廠模式分為簡單/靜態工廠模式,工廠方法模式,抽象工廠模式。
簡單工廠的作用是例項化物件,而不需要客戶了解這個物件屬於哪個具體的子類。簡單工廠例項化的類具有相同的介面或者基類,在子模擬較固定並不需要擴充套件時,可以使用簡單工廠。
staticfactory.php
<?php
namespace designpatterns\creational\staticfactory;
/** * 簡單工廠類
* */
final class staticfactory
if ($type == 'string')
throw new \invalidargumentexception('unknown format given');
}}
formatterinte***ce.php
<?php
namespace designpatterns\creational\staticfactory;
/** * 產品介面類
* **/
inte***ce formatterinte***ce
formatstring.php
<?php
namespace designpatterns\creational\staticfactory;
class formatstring implements formatterinte***ce
formatnumber.php
<?php
namespace designpatterns\creational\staticfactory;
class formatnumber implements formatterinte***ce
使用:
<?php
namespace designpatterns\creational\staticfactory\tests;
use designpatterns\creational\staticfactory\staticfactory;
use phpunit\framework\testcase;
class staticfactorytest extends testcase
public function testcancreatestringformatter()
/*** @expectedexception \invalidargumentexception
*/public function testexception()
}
php設計模式之工廠模式
一直都對php的設計模式有著一種特殊的 情結 從最開始接觸到的單例模式,到經典的mvc設計模式,每次的接觸都讓我為之驚奇。買了本php設計模式在家看,發現,都是專有名詞,再加上太專業的術語,讓我沒有看下去的勇氣。無意之中逛論壇,發現乙個部落格,關於php的五種設計模式,其中就有工廠模式。看完後,第一...
php設計模式之工廠模式
工廠模式的最大優點在於建立物件上面,就是把建立物件的過程封裝起來,這樣隨時可以產生乙個新的物件。減少 進行複製粘帖,耦合關係重,牽一發動其他部分 通俗的說,以前建立乙個物件要使用new 現在把這個過程封裝起來了。假設不使用工廠模式 那麼很多地方呼叫類a 就會這樣子建立乙個例項 new a 假設某天需...
php模式設計之 工廠模式
那麼何為工廠模式?從名字來看,似乎看不出什麼端倪。工廠模式,和生產有關?還是和生產流程 子了,所謂工廠模式還真和生產有關。生產什麼呢?生產出來的是乙個例項物件。通過什麼裝置生產?通過乙個工廠類生產。怎麼生產呢?工廠類呼叫自身靜態方法 來生產物件例項。工廠模式有乙個關鍵的構造,根據一般原則命名為fac...