<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)  編輯  收藏

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


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 亚洲三级在线观看| 亚洲AV无码一区二区三区DV| 亚洲男人的天堂久久精品| 国内精品久久久久影院免费| 亚洲国产一区视频| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 亚洲av片在线观看| 国产精品免费_区二区三区观看| 亚洲色大成网站www久久九| 天天摸天天操免费播放小视频| 亚洲免费网站观看视频| 免费观看午夜在线欧差毛片| 无码免费又爽又高潮喷水的视频| 亚洲不卡无码av中文字幕| 国产精品免费久久久久影院| 亚洲国产精品无码久久久秋霞2 | www成人免费观看网站| 亚洲欧洲日产国码无码久久99 | 嫩草影院免费观看| 国产精品亚洲а∨天堂2021| 亚洲AⅤ视频一区二区三区 | 亚洲欧好州第一的日产suv| 成人永久免费福利视频网站| 污网站免费在线观看| 亚洲午夜久久久久久久久电影网 | 女人裸身j部免费视频无遮挡| 亚洲日韩精品一区二区三区| 最近高清中文字幕免费| 亚洲精品无码成人| 亚洲性久久久影院| 最近免费中文字幕大全免费版视频| 天天爽亚洲中文字幕| 亚洲AV之男人的天堂| 欧洲人成在线免费| xxx毛茸茸的亚洲| 国产成人高清亚洲| 国产成人福利免费视频| 窝窝影视午夜看片免费| 亚洲第一永久在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 午夜老司机永久免费看片|