在先前的文章《淺談PHP中的責任鏈模式》中我們介紹了PHP中的責任鏈模式,以下這篇文章帶大家了解一下PHP設計模式中的代理模式。
代理人這個職業在中國有另外一個稱呼,房產經濟人、保險經濟人,其實這個職業在國外都是叫做房產代理或保險代理。顧名思義,就是由他們來幫我們處理這些對我們大部分人來說都比較生疏的專業領域的工作。代理模式也是一樣的道理,同時,在這篇文章中還會簡單的介紹正向代理和反向代理是怎麼回事。
GoF定義:為其它物件提供一種代理以控制對這個物件的存取
GoF類別圖
#程式碼實作
interface Subject { public function Request(); } class RealSubject implements Subject { function Request() { echo "真实的操作", PHP_EOL; } } class Proxy implements Subject { private $realSubject; public function __construct() { $this->realSubject = new RealSubject(); } public function Request() { echo "代理的操作", PHP_EOL; $this->realSubject->Request(); } } $proxy = new Proxy(); $proxy->Request();
**
完整程式碼:https://github.com/zhangyue0503/designpatterns-php/blob/master/12.proxy/source/proxy.php
簡訊功能不能停,這回用簡單的代理模式來增加一些前後的提示吧!
簡訊發送類別圖
#完整原始碼:https://github.com/zhangyue0503/designpatterns-php /blob/master/12.proxy/source/proxy-msg.php
<?php interface SendMessage { public function Send(); } class RealSendMessage implements SendMessage { public function Send() { echo '短信发送中...', PHP_EOL; } } class ProxySendMessage implements SendMessage { private $realSendMessage; public function __construct($realSendMessage) { $this->realSendMessage = $realSendMessage; } public function Send() { echo '短信开始发送', PHP_EOL; $this->realSendMessage->Send(); echo '短信结束发送', PHP_EOL; } } $sendMessage = new ProxySendMessage(new RealSendMessage()); $sendMessage->Send();
說明
原文網址:https://juejin.cn/post/6844903959988011016作者:硬核心專案經理推薦學習: 《
PHP影片教學》
以上是聊聊PHP中的代理模式(正向代理和反向代理)的詳細內容。更多資訊請關注PHP中文網其他相關文章!