代理模式——结构型设计模式之六
最后更新于:2022-04-01 09:30:15
## 一、代理模式
为其他对象提供一种代理以控制对这个对象的访问。
例子是这么说的:
A同学追C 同学,可是A同学不敢直接送东西给C同学,于是就通过B同学把东西转交给C同学。B同学送给C同学的东西都是A同学的,也就是说B的所有动作A同学的本意,并非B的本意哦!最后,B同学和C同学在一起了,当然这是故事情节,不管他了。这里的B同学就是我们要说的代理模式的代理。
**重点**:我们知道B送给C的东西和他发出的动作其实都是从A那拿来的,即代理只是引用真实实体的方法。
这个模式理解的稀里糊涂?请大家帮忙指点一下。
一个对象是不是可以有多个代理呢?
针对不同要访问的对象设置不同的代理。
## 二、类图
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-18_56c5ce72d1924.png)
## 三、代理模式的应用
1、远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
2、虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
3、安全代理:用来控制真实对象访问时的权限。
4、智能指引:是指当调用真实的对象时,代理处理另外一些事。