感觉描述怪怪的
tangq
4年前
修改理由:
相关信息:
- 类型:文档文章
- 文章: 代理模式(Proxy)
- 文档: 《PHP 设计模式全集(2018)》
此投稿已在 4年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
1 | ||
2 | 1 | 2.10.1. 目的 |
3 | 2 | --------------- |
4 | 3 | |
5 | 链接任何具有高价值或无法复制的代码。 | |
4 | 代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。 | |
5 | ||
6 | 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。 | |
7 | ||
8 | 经典例子就是网络代理,你想访问 Facebook 或者 Twitter ,如何绕过 GFW?找个代理网站。 | |
9 | ||
6 | 10 | |
7 | 11 | 2.10.2. Examples |
8 | 12 | ---------------- | … | … |
14 | 18 | |
15 | 19 | ![file](https://cdn.learnku.com/uploads/images/201803/19/1/c9IjRLIGzP.png) |
16 | 20 | |
17 | ||
21 | ||
18 | 22 | 2.10.4. 代码 |
19 | 23 | -------------------------------------------------------------------------------------------------------------------------------- |
20 | 24 | … | … |
119 | 123 | } |
120 | 124 | } |
121 | 125 | |
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 | ||
122 | 147 | ``` |