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