探讨代理模式与Java反射机制的应用 - 商帝国咨询 - 五略商书

探讨代理模式与Java反射机制的应用

商帝国咨询头像

阅读 13515 | 分类:文章

 代理模式,相信大多数人都非常熟悉,常见的实现方式是通过公共接口的方式,让我们的目标类和代理类实现同一接口,在代理类中调用目标类对象的方法。具体请看我另一个博客中的文章:Java的代理模式(通过公共接口实现) 。通过接口的方式,有个不好的地方,就是对每个目标类都要写一对与之相对应的接口和代理类,如果业务类很多,就是非常繁锁的工作了。

 

而加入反射机制的代理模式,可实现一个公共的代理类,省去我们不少功夫。Java的java.lang.reflect包及其子包中提供了Class、Method、Annotation等有用的类。下面,写个方法代理的类MethodProxy,实现动态地调用对象的方法。

 

Java代码 复制代码
  1. import java.lang.reflect.InvocationTargetException;   
  2. import java.lang.reflect.Method;   
  3. /**  
  4.  * 方法代理类  
  5.  * @author rongxinhua  
  6.  *  
  7.  */  
  8. public class MethodProxy {   
  9.        
  10.     private Class clazz;    //对象所属的类   
  11.     private Object target;  //目标对象   
  12.     private Method method;  //目标方法   
  13.     private Object[] params;    //参数数组   
  14.        
  15.     @SuppressWarnings("unchecked")   
  16.     public MethodProxy(Object target, String methodName, Object ... params) {   
  17.         rebindTarget(target, methodName, params);   //设置目标对象与方法   
  18.     }   
  19.        
  20.     /**  
  21.      * 重新设置目<

留言区(共0条)

暂无留言,快来抢占沙发~
作者声明:非原创
平台声明:文章及评论仅代表作者本人观点,五略商书系信息发布平台,仅提供信息存储空间服务,如有侵权,请联系13521509118。转载请注明作者和出处:转自五略商书m.shangdiguo.com,作者商帝国咨询!