2020年10月20日星期二

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();

 

原文转载:http://www.shaoqun.com/a/481366.html

ryder:https://www.ikjzd.com/w/1264.html

e邮宝:https://www.ikjzd.com/w/594.html?source=tagwish

巴士物流:https://www.ikjzd.com/w/2329


定义:代理模式(Proxy):在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。结构:Subject:subject类,定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。RealSubject:RealSubject类,定义Proxy所代表的真实实体。Proxy:实现
敦煌网:https://www.ikjzd.com/w/189
淘粉8:https://www.ikjzd.com/w/1725
郑州"一环十纵十横"道路提升改造时间表公布 中原区8个BR:http://tour.shaoqun.com/a/76318.html
桂林旅游攻略,有什么景点必去?:http://tour.shaoqun.com/a/7079.html
在北京旅游住哪里方便:http://tour.shaoqun.com/a/66722.html

没有评论:

发表评论