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

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

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

    posts - 51, comments - 17, trackbacks - 0, articles - 9
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java模式之動態代理

    Posted on 2007-01-05 20:47 chenweicai 閱讀(395) 評論(1)  編輯  收藏

    package proxy;
    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public interface Subject {
    ?abstract public void request();
    ?abstract public void request2();
    }


    package proxy;

    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public class RealSubject implements Subject {
    ?
    ?public RealSubject(){
    ?}

    ?public void request() {
    ??// TODO Auto-generated method stub
    ??System.out.println("From real subject.request().");
    ?}
    ?
    ?public void request2() {
    ??// TODO Auto-generated method stub
    ??System.out.println("From real subject.request2()");
    ?}
    }

    package proxy;


    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;

    /**
    ?*
    ?* @author chenweicai
    ?*
    ?*/
    public class DynamicSubject implements InvocationHandler {
    ?
    ?private Object sub;
    ?
    ?public DynamicSubject(){
    ?}
    ?
    ?public DynamicSubject(Object obj){
    ??this.sub = obj;
    ?}

    ?public Object invoke(Object proxy, Method method, Object[] args)
    ???throws Throwable {
    ??// TODO Auto-generated method stub
    ???? System.out.println("before calling " + method);
    ???? method.invoke(sub,args);
    ???? System.out.println("after calling " + method);
    ??return null;
    ?}

    }


    package proxy;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Proxy;

    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public class Client {
    ?static public void main(String[] args)
    ??????? throws Throwable{
    ??? RealSubject rs = new RealSubject();? //在這里指定被代理類
    ??? InvocationHandler ds = new DynamicSubject(rs);? //初始化代理類
    ??? Class cls = rs.getClass();
    ??
    ??? //以下是分解步驟
    ??? /*Class c = Proxy.getProxyClass(cls.getClassLoader(),cls.getInterfaces()) ;
    ??? Constructor ct=c.getConstructor(new Class[]{InvocationHandler.class});
    ??? Subject subject =(Subject) ct.newInstance(new Object[]{ds});*/
    ??
    ??? //以下是一次性生成
    ??? Subject subject = (Subject) Proxy.newProxyInstance(cls.getClassLoader(),
    ??? cls.getInterfaces(),ds );

    ??? subject.request2();
    ?? }
    }


    評論

    # re: java模式之動態代理  回復  更多評論   

    2007-01-05 22:50 by xzcqwer
    這是在講述springframework中ProxyFactoryBean的實現機理吧,呵呵

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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 免费精品一区二区三区第35| 亚洲香蕉在线观看| 91福利免费体验区观看区| 国产一级淫片免费播放电影| 国产成+人+综合+亚洲专| 91精品免费在线观看| 3344免费播放观看视频| 亚洲精品乱码久久久久66| 人禽伦免费交视频播放| 亚洲国产成人久久综合区| 污视频网站免费在线观看| 国产免费观看青青草原网站| 精品国产亚洲一区二区三区在线观看| 日本久久久免费高清| 国产精品亚洲а∨无码播放麻豆| 免费国产成人高清视频网站| 好看的电影网站亚洲一区| 男人天堂免费视频| 午夜免费福利在线观看| 亚洲区日韩精品中文字幕| baoyu116.永久免费视频| 亚洲乱码无码永久不卡在线| 久久一本岛在免费线观看2020| 永久免费看bbb| 日本一区二区三区在线视频观看免费| 免费在线观看一级毛片| 国产高潮流白浆喷水免费A片 | 国产成人亚洲综合色影视 | 免费大片在线观看网站| 免费成人激情视频| 亚洲日韩国产精品无码av| 亚洲美女视频免费| 亚洲人成网站免费播放| 日批日出水久久亚洲精品tv| 天黑黑影院在线观看视频高清免费| 亚洲bt加勒比一区二区| 成年女人喷潮毛片免费播放| 一级毛片高清免费播放| 亚洲国产精品人久久| 国产高清视频免费在线观看| 91大神亚洲影视在线|