定义:
代理模式(Proxy):在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。
结构:
Subject:subject 类,定义了 RealSubject 和 Proxy 的共用接口,这样就在任何使用 RealSubject的地方都可以使用 Proxy。RealSubject:RealSubject 类,定义 Proxy 所代表的真实实体。Proxy:实现Subject 接口并在内部引用了 RealSubject。Client:客户端代码。
代码实例:
interface Subject
{
public function request();
}
class RealSubject implements Subject
{
public function request()
{
echo "真实的请求<br/>\n";
}
}
class Proxy implements Subject
{
protected $realSubject;
public function __construct()
{
$this->realSubject = new RealSubject();
}
public function request()
{
$this->realSubject->request();
}
}
客户端调用:
$proxy = new Proxy();
$proxy->request();