動態代理理解

  1.   
  2. public interface XiangQinInterface {   
  3.       
  4.     public void xiangQin();   
  5. }   
  6.   
  7. public class ZhangSanXiangQinInterfaceImpl implements XiangQinInterface {   
  8.     public void xiangQin() {   
  9.         System.out.println("張三去相親,娶個漂亮老婆。");   
  10.     }   
  11. }   
  12. import java.lang.reflect.InvocationHandler;   
  13. import java.lang.reflect.Method;   
  14.   
  15.   
  16. public class ReadyInvocationHandler implements InvocationHandler {   
  17.     //相親接口的實現類,也就是張三相親類   
  18.     private Object zhangSan = null;   
  19.   
  20.     public ReadyInvocationHandler(Object realSubject) {   
  21.         this.zhangSan = realSubject;   
  22.     }   
  23.   
  24.     public Object invoke(Object proxy, Method m, Object[] args) {   
  25.         Object result = null;   
  26.         try {   
  27.               
  28.               
  29.             System.out.println(proxy.getClass().getSimpleName());   
  30.             System.out.println("張三相親前,代理人給他打扮了打扮。");   
  31.             result = m.invoke(zhangSan, args);   
  32.         } catch (Exception ex) {   
  33.             System.exit(1);   
  34.         }   
  35.         return result;   
  36.     }   
  37. }   
  38. import java.lang.reflect.InvocationHandler;   
  39. import java.lang.reflect.Method;   
  40. import java.lang.reflect.Proxy;   
  41.   
  42.   
  43. public class HunJieSuo {   
  44.     public static void main(String args[]) {   
  45.         //先將張三相親這個相親的實現類實例化,也就是獲得XiangQinInterface接口的一個實例對象   
  46.         XiangQinInterface zhangSan = new ZhangSanXiangQinInterfaceImpl();   
  47.           
  48.           
  49.         XiangQinInterface proxy = (XiangQinInterface) Proxy.newProxyInstance(   
  50.                 zhangSan.getClass().getClassLoader(),   
  51.                 zhangSan.getClass().getInterfaces(),   
  52.                 new ReadyInvocationHandler(zhangSan));   
  53.         proxy.xiangQin();   
  54.           
  55.     }   
  56. }  
相關文章
相關標籤/搜索