tangq 4年前

修改理由:

感觉描述怪怪的

相关信息:


此投稿已在 4年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1  
212.10.1. 目的
32---------------
43
5 链接任何具有高价值或无法复制的代码。
 4代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。
 5
 6在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。
 7
 8经典例子就是网络代理,你想访问 Facebook 或者 Twitter ,如何绕过 GFW?找个代理网站。
 9
610
7112.10.2. Examples
812----------------
 
1418
1519![file](https://cdn.learnku.com/uploads/images/201803/19/1/c9IjRLIGzP.png)
1620
17 
 21
18222.10.4. 代码
1923--------------------------------------------------------------------------------------------------------------------------------
2024
 
119123   }
120124}
121125
 126```  
 127测试代码  
 128```  
 129<?php  
 130     
 131   namespace DesignPatterns\Structural\Proxy\Tests;  
 132     
 133   use DesignPatterns\Structural\Proxy\Record;  
 134   use DesignPatterns\Structural\Proxy\RecordProxy;  
 135     
 136   class ProxyTest extends \PHPUnit_Framework_TestCase  
 137   {  
 138       public function testSetAttribute(){  
 139           $data = [];  
 140           $proxy = new RecordProxy($data);  
 141           $proxy->xyz = false;  
 142           $this->assertTrue($proxy->xyz===false);  
 143       }  
 144   }  
 145  
 146  
122147```