• 技术文章 >后端开发 >php教程

    聊聊PHP中的代理模式(正向代理和反向代理)

    青灯夜游青灯夜游2021-07-14 19:32:04转载597
    在之前的文章《浅谈PHP中的责任链模式》中我们介绍了PHP中的责任链模式,下面本篇文章带大家了解一下PHP设计模式中的代理模式。

    代理人这个职业在中国有另外一个称呼,房产经济人、保险经济人,其实这个职业在国外都是叫做房产代理或者保险代理。顾名思义,就是由他们来帮我们处理这些对我们大部分人来说都比较生疏的专业领域的工作。代理模式也是一样的道理,同时,在这篇文章中还会简单的介绍正向代理和反向代理是怎么回事。

    Gof类图及解释

    GoF定义:为其它对象提供一种代理以控制对这个对象的访问

    GoF类图

    1.jpg

    代码实现

    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

    实例

    短信功能不能停,这回用简单的代理模式来增加一些前后的提示吧!

    短信发送类图

    2.jpg

    完整源码: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中文网其它相关文章!

    声明:本文转载于:掘金--硬核项目经理,如有侵犯,请联系admin@php.cn删除
    上一篇:详解利用PHP如何操控循环时间?(代码示例) 下一篇:大厂喜欢出的一道PHP面试题!
    VIP会员

    相关文章推荐

    • 设计模式六大原则是什么• 一文了解PHP中的原型模式• 深入浅析PHP中的命令模式• 一起聊聊PHP中的策略模式• 浅谈PHP中的责任链模式

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网