当前位置: 首页 > 后端技术 > PHP

PHP设计模式的代理模型

时间:2023-03-29 22:29:38 PHP

代理这个职业在国内还有一个名字,房地产经纪人,保险经纪人,其实这个职业在国外叫房地产经纪人或者保险经纪人。顾名思义,它们帮助我们处理这些对我们大多数人来说相对陌生的专业领域。代理模式也是如此。同时,在本文中,我们将简单介绍一下正向代理和反向代理。Gof类图及解释GoF定义:为其他对象提供代理,控制对该对象的访问classProxyimplementsSubject{private$realSubject;publicfunction__construct(){$this->realSubject=newRealSubject();}publicfunctionRequest(){echo"代理的操作",PHP_EOL;$this->realSubject->Request();}}$proxy=newProxy();$proxy->Request();代理模式的实现其实很简单,也许你经常不经意地使用它,请注意代理模式与装饰器和装饰器的区别适配器。另外,模板方法模式也和它很像。装饰器一般是对对象进行装饰,方法行为会增加。被修饰的对象为主适配器,一般会改变方法行为。目的是保持统一性的interface但得到模板方法模式的不同实现。后面再说,这里只要知道,模板方法就是结合抽象类中调用子类的方法。代理模式有几种形式:远程代理(例如:三方接口SDK)、虚拟代理(例如:异步加载图片)、保护代理&智能引导(例如:权限保护),最我们代码实现的普通代理其实就是让代理类代替真正的类操作**完整代码: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.phprealSendMessage=$realSendMessage;}publicfunctionSend(){echo'短信开始发送',PHP_EOL;$this->realSendMessage->发送();echo'短信发送结束',PHP_EOL;}}$sendMessage=newProxySendMessage(newRealSendMessage());$sendMessage->Send();例子很简单,还是普通代理的实现。对于代理和反向代理,我们通常所说的(反强)是正向代理。我们使用软件或配置代理网关来上网。其实就是我们把请求发送到指定的网关,然后这个网关代替我们去访问其他网站,我们指定和选择的代理就是正向代理。大多数PHPer都知道反向代理。毕竟Nginx已经取代Apache成为PHP的标准配置了。当我们访问一个网站时,某些路径或者域名不一定在这台服务器上,它们是直接代理到其他服务器甚至是其他人在该服务器上的站点。对于我们这些浏览该网站的人来说,我们并不知道。这种我们在不知情的情况下被莫名其妙的代理的情况就是反向代理。一般是服务后台运维中必备的知识!下一期代理模式,说简单就说简单,说复杂也说复杂。总之,是根据业务形态来确定的。模型真的是为解决问题而生的。如果能解决问题,也可以称之为经济人模型,你不同意!!下一篇我们一起来学习享元模式,又好听了!!各媒体平台均可搜索【硬核项目经理】