转载声明:原文链接:https://blog.csdn.net/CSDN_of_ding/article/details/115136359
使用代理模式的作用
1.功能增强:在你原有的功能上,增加了额外的功能。新增加的功能,叫做功能增强。
2.控制访问:代理类不让你访问目标,例如商家不让用户访问厂家。
实现代理的方式
1.静态代理
1)代理类是自己手工实现的,自己创建一个java类,表示代理类。
2)同时你所要代理的目标类是确定的。
特点
1)实现简单
2)容易理解
缺点
当你的项目中,目标类和代理类很多时候,有以下的缺点:
1)当目标类增加了,目标类可能也需要成倍的增加。代理类数量过多。
2)当你的接口中功能增加了,或者修改了,会影响众多的实现类,厂家类,代理类都需要修改。影响比较多。
代理类完成的功能
1.目标类中方法的调用
2.功能增强
2.动态代理
在静态代理中目标类有很多的时候,可以使用动态代理,避免静态代理的缺点。动态代理中目标类即使很多,代理类数量可以很少,当你修改了接口中的方法时,不会影响代理类。
动态代理:
在程序执行过程中,使用jdk的反射机制,创建代理类对象,并动态的指定要代理目标类。(换句话说,动态代理是一种创建java对象的能力,让你不用创建TaoBao类,就能创建代理类对象)
在java中,要想创建对象:
1.创建类文件,java文件编译为class
2.使用构造方法,创建类的对象
什么是动态代理?
使用jdk的反射机制,创建对象的能力,创建的是代理类的对象。而不用你创建类文件。不用写java文件。
什么是动态?
在程序执行时,调用jdk提供的方法才能创建代理类的对象。
帖子还没人回复快来抢沙发