码迷,mamicode.com
首页 > 编程语言 > 详细

Java动态代理

时间:2014-12-11 17:06:39      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:style   color   sp   java   strong   on   bs   代码   nbsp   

一、什么是动态代理?

  首先我们想想什么是代理?比如在现实生活中老板出差在外,不能自己在公司做某件事,就请自己的秘书”代理“。在程序里”代理“的意思是原本是类A干的事,但是因为某种原因不方便亲自执行,而是通过类B来执行自己的职责,类B并不是完全的类A,它只是调用了类A的某执行方法,正如秘书代理老板做事其实是调用了老板的某项权力。

  代码实现:在代理类的构造函数里传入真实对象,然后真实对象就可以在代理类调用自己的方法,从而实现代理,这就是代理的思想。我们从外部看动作就像是代理类实现的,其实还是真实对象实现的。

  代理分静态代理和动态代理。静态代理是由程序员自己创建源代码再编译,在运行前就已经固定了能代理的真实对象的类型,所以当有很多不同类型的真是对象要被代理时,程序员就要针对不同类型的真是对象创建不同的代理类,这显然是很麻烦的;

  而动态代理则是通过java的反射机制,在程序运行时动态地获取类型信息,实现动态代理的。

二、动态代理的实现:

  

  

 

Java动态代理

标签:style   color   sp   java   strong   on   bs   代码   nbsp   

原文地址:http://www.cnblogs.com/wangerxiansheng/p/4157883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!