php代理模式

2021-03-25  本文已影响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
张三在吃饭
张三在跑步
上一篇下一篇

猜你喜欢

热点阅读