## 一、代理模式
为其他对象提供一种代理以控制对这个对象的访问。
例子是这么说的:
A同学追C 同学,可是A同学不敢直接送东西给C同学,于是就通过B同学把东西转交给C同学。B同学送给C同学的东西都是A同学的,也就是说B的所有动作A同学的本意,并非B的本意哦!最后,B同学和C同学在一起了,当然这是故事情节,不管他了。这里的B同学就是我们要说的代理模式的代理。
**重点**:我们知道B送给C的东西和他发出的动作其实都是从A那拿来的,即代理只是引用真实实体的方法。
这个模式理解的稀里糊涂?请大家帮忙指点一下。
一个对象是不是可以有多个代理呢?
针对不同要访问的对象设置不同的代理。
## 二、类图
![](https://box.kancloud.cn/2016-02-18_56c5ce72d1924.png)
## 三、代理模式的应用
1、远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
2、虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
3、安全代理:用来控制真实对象访问时的权限。
4、智能指引:是指当调用真实的对象时,代理处理另外一些事。
- 前言
- 抽象工厂——创建型设计模式一
- 工厂三姐妹——创建型设计模式之二
- 初识面向对象设计模式
- 建造者模式——创建型模式之三
- 原型模式——创建型设计模式四
- 适配器 and 组合模式——结构性模式之一
- 桥接模式——结构性设计模式之二
- 组合模式——结构型设计模式之三
- 装饰模式——结构型设计模式之四
- 外观模式——结构型设计模式之五
- 代理模式——结构型设计模式之六
- 观察者模式——行为型设计模式之五
- 模板设计——行为设计模式之一
- 命令模式——行为设计模式之二
- 状态模式——行为型设计模式之三
- 职责模式——行为设计模式之四
- 中介模式——行为模式之六
- 策略+简单工厂 实战篇
- 看观察者怎么全方位观察机房收费系统
- 登陆也需要装饰——机房收费系统装饰模式实战
- 何为抽象?你有本末倒置吗?
- 再回首,策略、简单工厂是否依然?
- 再回首——行为型设计模式