## 代理模式
为其他对象提供一种代理,以控制对这个对象的访问。
### 应用场景
* 远程代理:为远程的对象提供代理
* 虚代理:根据需要创建很大的对象
* 保护代理:控制对原始对象的访问,用于对象有不同的访问权限
#### 远程代理
RPC框架中用到的就是远程代理。RPC框架,在拿到jar包对接口的描述后,中间件在服务启动的过程中生成对应的代理类。当调用接口的时候,代理类通过socket信息进行远程服务调用。
再举个例子,ORM代理完成框架对数据库的操作。
#### 虚代理
大文件读取的场景,实现懒加载。