设计模式|设计模式 - 代理模式Proxy
核心:客户端与执行者之间加一层代理
本质:控制对象访问
文章图片
因此,代理对象 可以在中间做很多事情
根据代理做了不同事情,大伙给他们起了一些名字
远程代理: Java中RMI技术一个对象在多个不同地址上
虚代理:创建资源消耗特别大的对象之前的处理,例如用户信息只需要返回名称,但是次次返回一个大的完整对象,这就没有必要
Android中压缩图片那块儿
BitmapFactory.Options newOpts =newBitmapFactory.Options();
// 开始读入图片,此时把options.inJustDecodeBounds 设回true,即只读边不读内容
newOpts.inJustDecodeBounds =true;
这里一定用到了虚代理
保护代理:访问对象前加上权限
智能牵引代理: 在代理对象操作真实对象的前后做一些附加动作
代理实现主要角色
接口 Subject
实际对象 RealSubject实现接口
代理对象Proxy 实现接口,并持有RealSubject的引用
什么是静态代理和动态代理
静态代理是指的我们自己实现的
动态代理指的是Java内建的,在java.lang.reflect 包下有两个 Proxy 和InvocationHandler ,代理对象必须实现InvocationHandler接口
动态代理的好处是每次接口变化,代理对象不用变化
还有一种代理实现方式,就是继承实现,去掉了接口。
【设计模式|设计模式 - 代理模式Proxy】完结
推荐阅读
- 事件代理
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式
- 《读_Head_First_有感》_“命令模式”
- 洗洗睡了|洗洗睡了 | 休息的时候,千万注意切换你的行为模式