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

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


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 美女视频黄a视频全免费| 久99久精品免费视频热77| 成人性生交视频免费观看| 亚洲人成网www| 最近免费2019中文字幕大全| 亚洲αv在线精品糸列| 免费看成人AA片无码视频吃奶| 亚洲伊人色欲综合网| xxxxx做受大片在线观看免费| 亚洲精品456播放| 国产精品免费αv视频| 国产亚洲自拍一区| 中文字幕a∨在线乱码免费看 | 亚洲91精品麻豆国产系列在线 | 一区免费在线观看| 久久成人免费播放网站| 亚洲AV无码国产精品色午友在线| 色欲国产麻豆一精品一AV一免费 | 91精品国产免费网站| 亚洲伊人色一综合网| 女人18毛片免费观看| 日韩精品视频在线观看免费| 亚洲综合国产精品第一页| 国产三级在线免费观看| 亚洲一区影音先锋色资源| 国产人在线成免费视频| 日日摸日日碰夜夜爽亚洲| 国产偷国产偷亚洲清高动态图 | 久久精品国产精品亚洲蜜月| 亚洲免费在线观看视频| 亚洲丁香婷婷综合久久| 亚洲不卡AV影片在线播放| 嫩草在线视频www免费观看| 亚洲国产高清美女在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 2021免费日韩视频网| 久久水蜜桃亚洲AV无码精品| 亚洲乱亚洲乱妇无码麻豆| 真人做人试看60分钟免费视频| 免费福利在线观看| 亚洲综合免费视频|