十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在基本的MVC框架模型中,會(huì)引用到數(shù)據(jù)庫(kù)和模板文件。但是不同的開發(fā)者會(huì)選擇不同的數(shù)據(jù)庫(kù)以及模板引擎。因?yàn)樵趯?shí)際開發(fā)的過程中,有可能會(huì)更換數(shù)據(jù)庫(kù)或者是模板引擎,如果針對(duì)每個(gè)數(shù)據(jù)庫(kù)以及模板引擎都來寫一個(gè)接口來調(diào)用的話,將會(huì)十分繁瑣。所以工廠類的出現(xiàn),很好的解決了這個(gè)問題。

在此我定義一個(gè)數(shù)據(jù)庫(kù)工廠類以及一個(gè)模板引擎工廠類。
1、首先來看看數(shù)據(jù)庫(kù)工廠類:
在此假設(shè)我使用的是mysql數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)工廠類中封裝了實(shí)例化數(shù)據(jù)庫(kù)(使用何種數(shù)據(jù)庫(kù))的方法以及數(shù)據(jù)庫(kù)操作(增刪改查等等)的相關(guān)方法。
在使用數(shù)據(jù)庫(kù)工廠類的時(shí),首先確定使用的是什么數(shù)據(jù)庫(kù)。在此我就需要在數(shù)據(jù)庫(kù)工廠類中寫一個(gè)初始化方法,如下所示,$dbtype是指定使用的數(shù)據(jù)庫(kù)類型,$config則是傳入該數(shù)據(jù)庫(kù)的配置信息。
public static function init($dbtype, $config) { self::$db = new $dbtype; self::$db->connect($config); }初始化數(shù)據(jù)庫(kù)后,就可以調(diào)用各個(gè)數(shù)據(jù)庫(kù)的操作方法,我們?cè)诠S類中定義的方法是可供任意種類的數(shù)據(jù)庫(kù)使用的。例如插入方法:
public static function insert($table,$arr){ return self::$db->insert($table,$arr); }在此定義兩個(gè)參數(shù),一個(gè)表名,一個(gè)插入的數(shù)據(jù)。然后調(diào)用的是mysql數(shù)據(jù)庫(kù)的insert方法,來實(shí)現(xiàn)具體的插入操作。
總結(jié):使用數(shù)據(jù)庫(kù)工廠類,即為了所需的數(shù)據(jù)庫(kù)相關(guān)功能定義了一個(gè)標(biāo)準(zhǔn),無論傳入什么數(shù)據(jù)庫(kù),都可以獲取到該數(shù)據(jù)庫(kù)的實(shí)例化對(duì)象。我們只需要定義好工廠類中各操作方法以便調(diào)用實(shí)際的數(shù)據(jù)庫(kù)操作方法即可。
2、模板引擎工廠類
與數(shù)據(jù)庫(kù)工廠類相似,在模板引擎工廠類中,不針對(duì)任何一種模板文件。同樣的定義了初始化模板引擎的方法,以便確定使用何種模板引擎。
在此假設(shè)我們使用的模板引擎為Smarty模板,初始化方法如下:
public static function init($viewtype,$config){ self::$view = new $viewtype; foreach($config as $key=>$value){ self::$view -> $key = $value; }$viewtype為視圖模板的類型,$config為配置信息(此處為數(shù)組文件)。
在確定好視圖模板引擎后,與數(shù)據(jù)庫(kù)工廠類一樣,可以定義相關(guān)功能的方法,來調(diào)用實(shí)際的模板引擎操作方法即可。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。