-
原型模式:通過克隆(clone)來在內(nèi)存拷貝大對象,節(jié)約開銷。查看全部
-
定義一個觀察者接口,以及定義不同的觀察者實現(xiàn)這個接口,實現(xiàn)接口定義的方法。 定義一個abstract事件抽象類,定義了一個添加觀察者的方法(接受一個觀察者對象),再定義一個通知方法,向所有的觀察者發(fā)出更新的通知。查看全部
-
定義一個策略接口,定義多個具體的策略類,使用的時候,根據(jù)上下文的不同,調(diào)用對應(yīng)的策略類,使用相同的接口方法,執(zhí)行不同的策略代碼查看全部
-
使用命名空間,那調(diào)用方法的時候就要寫很長一串,那么可以使用 別名功能查看全部
-
在代碼中實現(xiàn)數(shù)據(jù)對象映射模式,我們將實現(xiàn)一個ORM類,將復(fù)雜的SQL語句映射成對象屬性的操作。 在代碼中實現(xiàn)數(shù)據(jù)對象映射模式,我們將實現(xiàn)一個ORM類,將復(fù)雜的sql語句映射成對象屬性的操作 結(jié)合使用數(shù)據(jù)對象映射模式,工廠模式,注冊模式查看全部
-
策略模式:依賴倒置,控制反轉(zhuǎn)。查看全部
-
PHP策略模式: UserStrategy.php策略的接口文件:約定策略的所有行為。 FemaleUserStrategy.php 實現(xiàn)接口的所有方法 MaleUserStrategy.php 調(diào)用: class Page { protected $strategy; function index() { echo "AD:"; $this->strategy->showAd(); echo "<br/>"; echo "Category:"; $this->strategy->showCategory(); echo "<br/>"; } function setStrategy(\IMooc\UserStrategy $strategy) { $this->strategy=$strategy; } } $page=new Page(); if(isset($_GET["female"])) { $strategy=new \IMooc\FemaleUserStrategy(); } else{ $strategy=new \IMooc\MaleUserStrategy(); } $page->setStrategy($strategy); $page->index();查看全部
-
1.策略模式,將一組特定的行為和算法封裝成類,以適應(yīng)某些特定的上下文環(huán)境,這種模式就是策略模式。 2.實際應(yīng)用舉例,假如一個電商網(wǎng)站系統(tǒng),針對男性女性用戶要各自跳轉(zhuǎn)到不同的商品類目,并且所有廣告位展示不同的廣告。查看全部
-
PHP適配器模式實現(xiàn): 首先定一一個接口,再讓各個實現(xiàn)類去實現(xiàn)這個接口。從而達到適配器效果。查看全部
-
1.適配器模式,可以將截然不同的函數(shù)接口封裝成統(tǒng)一的API 2.實際應(yīng)用舉例,PHP數(shù)據(jù)庫操作有mysql,mysqli,pdo三種,可以用適配器模式統(tǒng)一成一致。類似場景還有cache適配,將memcache,redis,file,apc等不同的緩存函數(shù),統(tǒng)一成一致查看全部
-
注冊器模式: namespace IMooc; class Register { protected static $objects; //注冊。如Register::set('db1',$db); function set($alias,$object) { self::$object[$alias]=$object; } //取值。如$db=IMooc\Register::get('db1'); static function get($name) { return self::$object[$alias]; } //移除 function _unset($alias) { unset(self::$object[$alias]); } }查看全部
-
PHP單例模式: class Database { protected static $db; private function __construct() { } static function getInstance() { if(!isset(self::$db)) { return self::$db; } else { self::$db=new self(); return self::$db; } } function where($where) { return $this; } function order($order) { return $this; } function limit($limit) { return $this; } }查看全部
-
設(shè)計模式,工廠模式:工廠方法或者類生成對象,而不是在代碼中直接new ,單例模式:使某個類的對象僅允許創(chuàng)建一個 ,注冊模式:全局共享和交換對象查看全部
-
php四種魔術(shù)方法: namespace IMooc; class Object { protected $array=array(); //設(shè)置不存在屬性值時調(diào)用。如$obj->name="domico" ; function __set($key,$value) { var_dump(__METHOD__); $this->array[$key]=$value; } //獲取不存在屬性值時調(diào)用。如$obj->name; function __get($key) { var_dump(__METHOD__); return $this->array[$key]; } //調(diào)用不存在方法時調(diào)用。如$obj->test(); function __call($func,$param) { var_dump($func,$param); return "magic function"; } //與__call的區(qū)別是 靜態(tài)方法。 如IMooc\Object::test(); static function __callStatic($func,$param) { var_dump($func,$param); return "static magic function"; } //直接輸出實例時,如echo $obj; function __toString() { return __CLASS__; } //將實例當(dāng)成方法使用時。如 $obj("hh"); function __invoke($param) { var_dump($param); return "invoke"; } }查看全部
-
鏈式操作的核心點在于:業(yè)務(wù)邏輯結(jié)束后返回當(dāng)前對象。如:return $this;查看全部
舉報
0/150
提交
取消