定義:
代理模式(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();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/182484.html
標籤:其他
上一篇:狂刷1個月Java面試題,跳槽位元組跳動,三面斬獲Offer!
下一篇:怎么拍一個抖音熱門視頻?
