代理模式
代理模式(Proxy Pattern) :给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式。
模式结构
代理模式包含如下角色:
- Subject: 抽象主题角色
- Proxy: 代理主题角色
- RealSubject: 真实主题角色
结构图
PHP代码实现
<?php
//Subject: 抽象主题角色
interface Subject
{
public function request();
}
//RealSubject: 真实主题角色
class RealSubject implements Subject
{
public function request(){
var_dump('真实的请求');
}
}
//Proxy: 代理主题角色
class Proxy implements Subject
{
public function request(){
$realSubject=new RealSubject();
$realSubject->request();
}
}
$a=new Proxy();
$a->request();
运行结果
string '真实的请求' (length=15)