设计模式 结构型---代理模式
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、代理模式基本介绍 代理模式为一个对象提供一个替身,以控制这个对象的访问。即通过代理模式访问目标对象。这样做的好处就是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能; 被代理的对象可以是远程控制的对象,创建开销量大的对象或者需要安全控制的对象; 代理模式有三种模式:静态代理、动态代理(JDK代理、接口代理)和Cglib代理(可以在内存中动态的创建对象,而不需要实现接口,他是属于动态代理的范畴)。 二、代理有以下四类 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求。 虚拟代理(Virtual Proxy):根据需要创建开销很大的对象,它可以缓存实体的附加信息,以便延迟对它的访问,例如在网站加载一个很大图片时,不能马上完成,可以用虚拟代理缓存图片的大小信息,然后生成一张临时图片代替原始图片。 保护代理(Protection Proxy):按权限控制对象的访问,它负责检查调用者是否具有实现一个请求所必须的访问权限。 智能代理(Smart Reference):取代了简单的指针,它在访问对象时执行一些附加操作:记录对象的引用次数;当第一次引用一个对象时,将它装入内存;在访问一个实际对象前