PHP 代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
【代理模式中主要角色】
抽象主题角色:声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。
代理主题角色:含有真实主题的引用,从而可以在任何时候操作真实主题,代理主题功过提供和真实主题相同的接口,使它可以随时代替真实主题。代理主题通过持有真实主题的引用,不但可以控制真实主题的创建或删除,可以在真实主题被调用前进行拦截,或在调用后进行某些操作。
真实代理对象:定义了代理角色所代表的具体对象。
interface Person{ public function playGame(); public function kill(); } class Gaoshou implements Person { # 代理主题角色 public function playGame(){ echo "我是王者<br/>"; } public function kill(){ echo "penta kill<br/>"; } } class Proxy implements Person { # 代理 protected $obj; public function __construct(Person $obj) { $this->obj = $obj; } public function playGame() { $this->obj->playGame(); } public function kill() { $this->obj->kill(); } } $obj = new Proxy(new Gaoshou()); $obj->playGame(); $obj->kill();
输出:
我是王者
penta kill