您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php工廠模式怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“php工廠模式怎么實現(xiàn)”吧!
說明
1、工廠模式解決的是如何不通過new建立實例對象。
2、有一些方法可以創(chuàng)建目標(biāo),而不是new。
如果想改變創(chuàng)建的對象類型,只需要改變工廠,使用這個工廠的所有代碼會自動改變。
3、通常與接口一起使用,應(yīng)用程序不需要知道這些實例化類的具體細(xì)節(jié)。
只要知道工廠返回的是支持某個接口類別的類就可以輕松使用。
實例
/** * 抽象出一個人的接口 * Interface Person */ interface Person { public function showInfo(); } /** * 一個繼承于抽象人接口的學(xué)生類 * Class Student */ class Student implements Person { public function showInfo() { echo "這是一個學(xué)生 \n"; } } /** * 一個繼承于抽象人接口的老師類 * Class Teacher */ class Teacher implements Person { public function showInfo() { echo "這是一個老師 \n"; } } /** * 人類工廠 * Class PersonFactory */ class PersonFactory { public static function factory($person_type) { // 將傳入的類型首字母大寫 $class_name = ucfirst($person_type); if(class_exists($class_name)){ return new $class_name; }else{ throw new Exception("類:$class_name 不存在",1); } } } // 需要一個學(xué)生 $student = PersonFactory::factory('student'); echo $student->showInfo(); // 需要一個老師的時候 $teacher = PersonFactory::factory('teacher'); echo $teacher->showInfo();
到此,相信大家對“php工廠模式怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。