工廠模式是我們最常使用的實例化物件模式了,是用工廠方法取代new作業的一種模式。著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程式系統可以說是隨處可見。今天我們就來為大家介紹PHP中的工廠模式。
推薦教學:PHP影片教學
#一、什麼是工廠模式?
一個類別透過本身的靜態方法來,實例化一個類別並傳回一個實例物件;
二、工廠模式特性?
類別命名特點:nameFactory eg: class mysqlFactory{} 【這是為了規範,當然也去起其他任意名字】
靜態方法名稱:static public function factory($class_name){} 【靜態方法是類別與外界的接口, 傳回的是物件】
三、優點?
如果已經使用的類別內部發生改變,哪不需要在所有的地方都改變,只需要在類別工廠類別裡改變既可,
例如:連接資料庫,可以使用mysql 、mysqli、pdo,根據不同參數配置使用不同的資料庫操作類別
4、應用程式場景
做支付介面的時候,未來可能對應不同的支付網關:支付寶、財付通、網路銀線上等。
方便未來擴充,設計成工廠模式。定一個專門生產網關介面的工廠,抽像出來,做成介面形式,讓所有的子類別都要實現它的介面。以後加一個支付方式,要用哪一種支付方式,改變一下參數即可。
在為使用者註冊的時候,分成很多種角色的使用者。例如冊用戶,匿名用戶、管理員用戶等。完全使用可以使用工廠的思想來實現,代碼也容易維護,為每種角色可以生成操作的類別等等。
系統對接多個不同類型的資料庫,mysql,oracle,sqlserver
#五、程式碼實例;
##
interface mysql{ public function connect(); } class mysqli2 implements mysql{ public function connect(){ echo 'mysqli'; } } class pdo2 implements mysql{ public function connect(){ echo 'pdo'; } } class mysqlFactory{ static public function factory($class_name){ return new $class_name(); } } $obj = mysqlFactory::factory('pdo2'); $obj->connect();
以上是什麼是php工廠模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!