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
张三在吃饭
张三在跑步