【校招VIP】Java开发面试之静态代理和动态代理

08月05日 收藏 0 评论 0 java开发

【校招VIP】Java开发面试之静态代理和动态代理

转载声明:原文链接: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提供的方法才能创建代理类的对象。

C 0条回复 评论

帖子还没人回复快来抢沙发