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