美文网首页
设计模式(十一):代理模式

设计模式(十一):代理模式

作者: 何笙 | 来源:发表于2019-05-16 17:23 被阅读0次

代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。

在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。

经典例子就是网络代理。

示例代码

主体类 Subject

class Subject {
    public function request() {
        //
    }
}

代理类 Proxy

class Proxy {
    private static $subject;
    public function request() {
        if (is_null(self::$subject)) {
            self::$subject = new Subject();
        }
        $this->preRequest();
        self::$subject->request();
        $this->AfterRequest();
    }
    public function preRequest(){
        //
    }
    public function afterRequest(){
        //
    }
}

测试类 Clienter

$proxy = new Proxy();
$proxy->request();

相关文章

网友评论

      本文标题:设计模式(十一):代理模式

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