<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

    動態代理: 代理類需要實現InvocationHandler接口。

    使用場合舉例: 如果需要委托類處理某一業務,那么我們就可以先在代理類中,對客戶的權限、各類信息先做判斷,如果不滿足某一特定條件,則將其攔截下來,不讓其代理。

    ServiceProxy.java

        package com.ibm.dynamicproxy;  
          
        import java.lang.reflect.InvocationHandler;  
        import java.lang.reflect.Method;  
        import java.lang.reflect.Proxy;  
          
        public class ServiceProxy implements InvocationHandler {  
          
            private Object target;  
              
            public ServiceProxy(Object target){  
                this.target = target;  
            }  
              
            @Override  
            public Object invoke(Object proxy, Method method, Object[] args)  
                    throws Throwable {  
                Object result = null;  
                result = method.invoke(target, args);  
                return result;  
            }  
              
            /**
             * @param target
             * @return 返回委托類接口的實例對象
             */  
            public Object getProxyInstance(){  
                return Proxy.newProxyInstance(target.getClass().getClassLoader(),   
                        target.getClass().getInterfaces(), this);  
            }  
        }  
    ServiceTest.java(測試類)

        package com.ibm;  
          
        import com.ibm.delegate.Service;  
        import com.ibm.delegate.ServiceImpl;  
        import com.ibm.dynamicproxy.ServiceProxy;  
          
        public class ServiceTest {  流行線
          
            /**
             * @param args
             */  
            public static void main(String[] args) {  
                //創建委托類實例,即被代理的類對象  
                ServiceImpl target = new ServiceImpl();  
                //創建動態代理類  
                ServiceProxy proxy = new ServiceProxy(target);  
                Service service = (Service) proxy.getProxyInstance();  
                String date = service.queryDate();  
                System.out.println(date);  
                int result = service.sub(10, 20);  
                System.out.println("10-20 = "+result);  
            }  
        }  

    修改兩個方法,做測試:

    ServiceImpl.java


        public String ownMethod(){  
            System.out.println("It's my own method");  
            return "user";  
        }  
    ServiceProxy.java

        @Override  
        public Object invoke(Object proxy, Method method, Object[] args)  
                throws Throwable {  
            Object result = null;  
            if(!(target instanceof ServiceImpl)){  
                System.out.println("不能代理該對象");  
                return result;  
            }else if(!((ServiceImpl)target).ownMethod().equals("admin")){  
                System.out.println("權限不夠");  
                return result;  
            }  
            result = method.invoke(target, args);  
            return result;  
        }  

    posted on 2012-06-27 15:36 墻頭草 閱讀(571) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 在免费jizzjizz在线播| 亚洲高清一区二区三区电影| 日本特黄特色AAA大片免费| 女人让男人免费桶爽30分钟| 亚洲校园春色另类激情| 五月婷婷综合免费| 亚洲综合成人婷婷五月网址| 欧洲乱码伦视频免费| 日韩亚洲人成在线| 在线看片人成视频免费无遮挡| 亚洲人成综合网站7777香蕉| 久久久久国色AV免费看图片| 亚洲日本VA午夜在线电影| 黄网址在线永久免费观看 | 香港一级毛片免费看| 免费看一级做a爰片久久| 成人一级免费视频| 亚洲综合另类小说色区| 青青操免费在线视频| 亚洲国产精品久久久久久| 最近新韩国日本免费观看| 亚洲va久久久久| 亚洲欧洲精品成人久久奇米网| 久青草视频在线观看免费| 亚洲高清不卡视频| 国产资源免费观看| 韩日电影在线播放免费版| 久久精品国产亚洲AV电影| 毛片免费全部免费观看| 人成午夜免费大片在线观看| 亚洲国产精品人久久| 国内一级一级毛片a免费| 中文字幕的电影免费网站| 78成人精品电影在线播放日韩精品电影一区亚洲 | 91人人区免费区人人| 亚洲一区二区三区写真 | 久久久久国产精品免费免费不卡| 亚洲毛片一级带毛片基地| 国产又黄又爽又猛的免费视频播放| 两个人日本免费完整版在线观看1| 亚洲精品永久www忘忧草|