您好,登錄后才能下訂單哦!
本篇文章為大家展示了php中工廠模式的原理是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、說明
工廠模式解決的是如何不通過new建立實例對象。
它有一些方法可以創(chuàng)建目標,而不是new。如果想改變創(chuàng)建的對象類型,只需要改變工廠,使用這個工廠的所有代碼會自動改變。
工廠模式通常與接口一起使用,應(yīng)用程序不需要知道這些實例化類的具體細節(jié),只要知道工廠返回的是支持某個接口類別的類就可以輕松使用。
2、實例
/** * 抽象出一個人的接口 * 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();
上述內(nèi)容就是php中工廠模式的原理是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。