首页 > 代码库 > Java动态代理
Java动态代理
一、什么是动态代理?
首先我们想想什么是代理?比如在现实生活中老板出差在外,不能自己在公司做某件事,就请自己的秘书”代理“。在程序里”代理“的意思是原本是类A干的事,但是因为某种原因不方便亲自执行,而是通过类B来执行自己的职责,类B并不是完全的类A,它只是调用了类A的某执行方法,正如秘书代理老板做事其实是调用了老板的某项权力。
代码实现:在代理类的构造函数里传入真实对象,然后真实对象就可以在代理类调用自己的方法,从而实现代理,这就是代理的思想。我们从外部看动作就像是代理类实现的,其实还是真实对象实现的。
代理分静态代理和动态代理。静态代理是由程序员自己创建源代码再编译,在运行前就已经固定了能代理的真实对象的类型,所以当有很多不同类型的真是对象要被代理时,程序员就要针对不同类型的真是对象创建不同的代理类,这显然是很麻烦的;
而动态代理则是通过java的反射机制,在程序运行时动态地获取类型信息,实现动态代理的。
二、动态代理的实现:
Java动态代理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。