作用
1)功能增强:在你原有的功能上增加了额外的功能。
**2)控制访问:**代理类不允许你直接访问目标。
实现代理的方式
1)静态代理:
指代理类是自己手工实现的,需要自己创建一个java类表示代理类。同时你所要代理的目标是固定的。
实现步骤:1)创建功能的接口。
2)创建真实对象实现接口。
3)创建代理对象实现接口。
4}使用。
静态代理的缺点:
当目标类增加时,代理类可能成倍增加。
当接口中的功能修改,会影响很多实现类。
2)动态代理:
在程序运行期间,利用jdk的反射机制创建代理对象,并动态的指定要代理的目标类。
动态代理的优点:
当目标类很多的时候,可以使用动态代理,避免代理类数量的增加。
而且当你修改接口中的方法时,不会影响代理类。