美文网首页
php代理模式

php代理模式

作者: 一路向后 | 来源:发表于2021-03-25 22:59 被阅读0次

    1.代理模式简介

       代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。

    2.源码实现

    <?php
    
    /*抽象主题角色*/
    interface Subject {
        public function say();
        public function run();
    }
    
    /*主题角色*/
    class RealSubject implements Subject {
        private $name;
    
        function __construct($name)
        {
            $this->name = $name;
        }
    
        public function say()
        {
            echo $this->name."在吃饭\n";
        }
    
        public function run()
        {
            echo $this->name."在跑步\n";
        }
    }
    
    /*代理主题角色*/
    class Proxy implements Subject {
        private $realSubject = null;
    
        public function __construct(RealSubject $realSubject = null)
        {
            if(empty($realSubject))
            {
                $this->realSubject = new RealSubject();
            }
            else
            {
                $this->realSubject = $realSubject;
            }
        }
    
        public function say()
        {
            $this->realSubject->say();
        }
    
        public function run()
        {
            $this->realSubject->run();
        }
    }
    
    //测试
    $subject = new RealSubject("张三");
    $proxy = new Proxy($subject);
    
    $proxy->say();
    $proxy->run();
    
    ?>
    

    3.运行及其结果

    $ php example.php
    张三在吃饭
    张三在跑步
    

    相关文章

      网友评论

          本文标题:php代理模式

          本文链接:https://www.haomeiwen.com/subject/zgrdhltx.html