什麼是工廠模式? 提到工廠,我們肯定首先想到的就是生產東西的地方,之所以叫做工廠模式也正是如此,工廠模式就是根據工廠類來調用自身靜態方法來生產不同對象實例。 工廠模式的應用場景還是挺多的,比如我們使用的各個框架(ThinkPHP,Laravel),為什麼我們定了各個控制器和方法後通過在瀏覽器通過輸入 ...
什麼是工廠模式?
提到工廠,我們肯定首先想到的就是生產東西的地方,之所以叫做工廠模式也正是如此,工廠模式就是根據工廠類來調用自身靜態方法來生產不同對象實例。
工廠模式的應用場景還是挺多的,比如我們使用的各個框架(ThinkPHP,Laravel),為什麼我們定了各個控制器和方法後通過在瀏覽器通過輸入特定規則的url(www.xxx.com/模塊/控制器/方法)就能調用對應的方法?實際上我們並沒有自己去寫創建實例的代碼(new 控制器()),都是由框架里的工廠方法根據url參數來創建對應控制器的實例。
實例代碼:
class Mysql {}
class Oracle{}
class MariaDB{}
//工廠類
class Factory {
public static function instance($className) {
return new $className();
}
}
//我們可以把$className就想象成瀏覽器傳來的控制器名稱,
//然後通過工廠類就可以生產對應的實例,接著調用實例方法
$className = 'Mysql';
$ins = Factory::instance($className);
$className = 'MariaDB';
$ins2 = Factory::instance($className);