核心: 客户端与执行者之间加一层代理
本质:控制对象访问
因此, 代理对象 可以在中间做很多事情
根据代理做了不同事情,大伙给他们起了一些名字
远程代理: 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接口
动态代理的好处是每次接口变化,代理对象不用变化
还有一种代理实现方式,就是继承实现,去掉了接口。
完结
网友评论