A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周洋 黑马帝   /  2012-4-1 16:42  /  1455 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这节视频看了两遍了,还是不太理解代理类的作用,感觉代理类还很累赘,既然目标类代码没有给出来,代理类怎么和它实现相同借口?是不是这个借口只能表示功能的代码?谁能举个例子说明下代理类的十分必要性?谢了

1 个回复

倒序浏览

import java.lang.reflect.*;

public class TestAgent {
    public static void main(String[] args) {
            Agent agent=new Agent();
            BAgentFace bAgentFace=null;
            agent.setObj(new BAgent());
            bAgentFace=(BAgentFace)Proxy.newProxyInstance(BAgentFace.class.getClassLoader(),new Class[]{BAgentFace.class},agent);
            bAgentFace.add();
    }
}
class Agent implements InvocationHandler
{
        private Object obj;
       
        public void setObj(Object obj) {
                this.obj = obj;
        }

        @Override
        public Object invoke(Object proxy, Method method, Object[] args)
                        throws Throwable {
               
                return method.invoke(obj,args);
        }
       
}
class BAgent implements BAgentFace
{
        public void add()
        {
                System.out.println("ni hao");
        }
}
interface BAgentFace
{
        public void add();
}
这个是具体的例子
他应用在junit可以测试 某一个方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马