-
【PHP】【面向?qū)ο缶幊痰幕驹瓌t】查看全部
-
基本原則查看全部
-
代理模式查看全部
-
傳統(tǒng)方式查看全部
-
面向?qū)ο蟮幕驹瓌t: 1,單一職責(zé):一個(gè)類,只需要做好一件事情。 2,開放封閉:一個(gè)類,應(yīng)該是可擴(kuò)展的,而不可修改的。 3,依賴倒置:一個(gè)類,不應(yīng)該強(qiáng)依賴另外一個(gè)類。每個(gè)類對于另外一個(gè)類都是可擴(kuò)展的。(依賴注入) 4,配置化:盡可能地使用配置,而不是硬編碼 5,面向接口編程:只需要關(guān)心接口,而不需要關(guān)心代碼具體實(shí)現(xiàn)查看全部
-
MVC結(jié)構(gòu)查看全部
-
面向?qū)ο蟮幕驹瓌t: 1,單一職責(zé):一個(gè)類,只需要做好一件事情。 2,開放封閉:一個(gè)類,應(yīng)該是可擴(kuò)展的,而不可修改的。 3,依賴倒置:一個(gè)類,不應(yīng)該強(qiáng)依賴另外一個(gè)類。每個(gè)類對于另外一個(gè)類都是可擴(kuò)展的。(依賴注入) 4,配置化:盡可能地使用配置,而不是硬編碼 5,面向接口編程:只需要關(guān)心接口,而不需要關(guān)心代碼具體實(shí)現(xiàn)查看全部
-
1、適配器模式,可以將截然不同的函數(shù)接口封閉成統(tǒng)一的API 2、實(shí)際應(yīng)用,PHP的數(shù)據(jù)庫操作有mysql,mysqli,pdo ,可以用適配器模式統(tǒng)一成一致。類似的還有cache適配器,將memcache,redis,file,apc等不同的緩存函數(shù)統(tǒng)一成一致。查看全部
-
特點(diǎn): 1、要聲明一個(gè)保護(hù)變量 如 protected $db; 2、將構(gòu)造方法改了私有方法來防止進(jìn)行實(shí)例化 如:private funtion __construct(){} 3、聲明一個(gè)靜態(tài)方法getInstance()來進(jìn)行實(shí)例化。如 static function getInstance(){} 實(shí)例: class Database { //1、聲明保護(hù)或私有變量 protected $db; //2 構(gòu)造方法私有化 private function __construct(){} //3、靜態(tài)方法 static function getInstance() { if(!self::$db) { self::$db=new self(); } return self::$db; } } //工廠+單例模式 class Factory { static function creatDatabase() { //如果不是單例模式這么寫 //return new Database(); //用單例模式用以下方式寫 return Database::getInstans(); } } //以下三種使用情況 //普通使用直接使用new一個(gè)對象 //$db=new Database(); //使用單例模式 //$db=Database::getInstance(); //使用工廠模式就是通過使用工廠的靜態(tài)方法來實(shí)現(xiàn)對象的實(shí)例化,替代new的實(shí)例化方法 $db=Factory::creatDatabase();查看全部
-
3種基本的設(shè)計(jì)模式: 1、工廠模式:工廠方法或者類生成對象,而不是在代碼中直接new 2、單例模式:使某個(gè)類的對象公允許創(chuàng)建一個(gè) 3、注冊模式:全局共享和交換對像查看全部
-
【PHP】【策咯模式的控制反轉(zhuǎn)】查看全部
-
PSR-0 規(guī)范 1. 命名空間與絕對路徑一致 2. 類名首字母大寫 3. 除入口外,其他文件里只有一個(gè)類查看全部
-
spl_autoload_register(); //允許多個(gè),不沖突 function __autoload($class){ require __DIR__.'/'.$class.'.php'; }查看全部
-
工廠模式,可以在一個(gè)地方new 對象,如果該對象經(jīng)過修改那工廠處改一處代碼就行了查看全部
-
<?php namespace IMooc; class Object{ protected $array = array(); function __set($key, $value) { var_dump(__METHOD__); $this->array[$key] = $value; } function __get($key) { var_dump(__METHOD__); return $this->array[$key]; } function __call($func, $params) { var_dump(__METHOD__); var_dump($func, $params); return 'call back'; } function __callStatic($func, $params) { var_dump(__METHOD__); var_dump($func, $params); return 'callstatic back'; } function __toString(){ return __CLASS__; } function __invoke($params) { var_dump($params); return 'invoke'; } }查看全部
舉報(bào)
0/150
提交
取消