设计模式 - 代理模式Proxy

核心:  客户端与执行者之间加一层代理

本质:控制对象访问



设计模式 - 代理模式Proxy_第1张图片

因此,  代理对象 可以在中间做很多事情

根据代理做了不同事情,大伙给他们起了一些名字

远程代理: 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)