代理模式是对象的结构模式。(JDK已经对动态代理提供了很好的支持)
1.定义:代理模式是给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
2.代理模式的两个作用:
1)增强被代理对象的功能(为代码增加前后置操作)
2)对被代理对象施加控制(如Filter)
3.代理的种类
1)远程(Remote)代理
2)虚拟(Virtual)代理
3)Copy-on-Write代理
4)保护(Protect or Access)代理
5)Cache代理
6)防火墙(Firewall)代理
7)同步化(Synchronization)代理
8)智能引用(Smart Reference)代理
注意:一般比较常用的是虚拟,远程,智能引用,保护等四种代理。
5.代理模式与适配器模式的区别
适配器模式:强调改变接口
代理模式:无法改变接口
6.代理模式与装饰模式的区别
装饰模式:强调增强功能。
代理模式:可以增强功能,也可以对对象施加控制。
注意:代理模式和装饰模式在增强对象的功能方面有不同的特点,代理模式一般是在透明地,不让客户端感觉到的情况下, 悄悄地增强的对象的功能。而装饰模式则是要求客户端明确知道有那些功能可以选择,并且明确地选择想要增加的功能。(重要)