相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP設(shè)計(jì)模式之工廠模式詳解
在開發(fā)大型系統(tǒng)時(shí),往往會(huì)出現(xiàn)這樣一種情況:
我有一部分基礎(chǔ)數(shù)據(jù),是類classA是從數(shù)據(jù)庫(kù)A讀取出來的,其他很多的功能都是基于這個(gè)基礎(chǔ)數(shù)據(jù)來操作的?,F(xiàn)在呢,我想把數(shù)據(jù)從數(shù)據(jù)庫(kù)A變成從另外的數(shù)據(jù)源去獲取,這時(shí)候,要修改起來就比較麻煩,要修改其他很多類的代碼。這種設(shè)計(jì)顯然是不夠靈活的,換句話說,就是緊耦合的,那么什么是緊耦合呢?緊耦合就是指系統(tǒng)中某個(gè)部分的函數(shù)或類嚴(yán)重依賴于系統(tǒng)的其他部分中的函數(shù)或類的行為和結(jié)構(gòu)。
這時(shí),工廠模式的作用性就體現(xiàn)出來了。
工廠模式
就是解決這樣的一些情況的設(shè)計(jì)方法。
工廠模式是一種類,建立了一個(gè)工廠來根據(jù)所需來創(chuàng)建對(duì)象,這種方式在多態(tài)性編程中是很重要的,允許動(dòng)態(tài)替換類,修改配置等。
/*基本工廠模式代碼*/
<?php /** * 基本工廠模式 * */ class User { private $username; public function __construct($username) { $this->username = $username; } public function getUser() { return $this->username; } } class userFactory { static public function createUser() { return new User('Jack'); } } $user = userFactory::createUser();echo $user->getUser(); ?>