概述:为其他工具供应一种代理以掌握对这个工具的访问
代理模式:
为其他工具供应一种代理以掌握对这个工具的访问

代理模式利用场合:
第一种:远程代理,便是为一个工具在不同的地址空间供应局部代表。这样可以隐蔽一个工具存在于不同地址空间的事实
第二种:虚拟代理,·根据须要创建开销很大的工具。通过它来存放实例化须要很永劫光的真实工具
第三种:安全代理,用来掌握真实工具访问时的权限
第四种:智能指引,是指当调用真实的工具时,代理处理其余一些事
个人举例:
谈恋爱送花
<?php
namespace haibao\design\web\view\design;
use haibao\design\web\common\design\proxy\Proxyor;
class Proxy extends \haibao\design\web\view\Base{
protected function preRender(){
header(\"大众Content-type: text/html; charset=utf-8\"大众);
$proxy = new Proxyor('娇娇');
$proxy->giveDolls();
echo \"大众<br/>\"大众;
$proxy->giveFlowers();
echo \公众<br/>\"大众;
$proxy->giveChocolate();
echo \公众<br/>\公众;
}
}
<?php
/
追求者的朋友 小席
真正的代理
/
namespace haibao\design\web\common\design\proxy;
class Proxyor implements IGiveGift{
public $pursuit;
public function __construct($mm){
$this->pursuit = new Pursuit($mm);
}
public function giveDolls(){
$this->pursuit->giveDolls();
}
public function giveFlowers(){
$this->pursuit->giveFlowers();
}
public function giveChocolate(){
$this->pursuit->giveChocolate();
}
}
<?php
/
代理模式
接口类
/
namespace haibao\design\web\common\design\proxy;
interface IGiveGift{
public function giveDolls();
public function giveFlowers();
public function giveChocolate();
}
<?php
/
追求者
实现送礼物接口
/
namespace haibao\design\web\common\design\proxy;
class Pursuit implements IGiveGift{
public $mm;
public function __construct($mm){
$this->mm = $mm;
}
public function giveDolls(){
echo $this->mm .'送你娃娃';
}
public function giveFlowers(){
echo $this->mm .'送你花';
}
public function giveChocolate(){
echo $this->mm .'送你巧克力';
}
}