代理人这个职业在中国有另外一个称呼,房产经济人、保险经济人,其实这个职业在国外都是叫做房产代理或者保险代理。顾名思义,就是由他们来帮我们处理这些对我们大部分人来说都比较生疏的专业领域的工作。代理模式也是一样的道理,同时,在这篇文章中还会简单的介绍正向代理和反向代理是怎么回事。
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();
说明
代理模式说简单也简单,说复杂的话也很复杂,总之还是根据业务形态来决定,模式真的只是为了解决问题而生的,问题能解决了,你也可以叫他经济人模式嘛,你说是不是!!下一篇我们一起学习享元模式,听着又很高大上吧!!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有