• 动态代理 例子


    package xinhuiji_day09

    **********************************定义代理类**********************************************
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    //动态代理
    public class MyInvocationHandler implements InvocationHandler {
        private Object obj = null;            //真实主题
        public Object Bind(Object obj){   //绑定真是操作主题
            this.obj = obj;
            return Proxy.newProxyInstance(obj.getClass().getClassLoader(),
                    obj.getClass().getInterfaces(), this);    //取得代理对象
        }
        @Override
        public Object invoke(Object arg0, Method arg1, Object[] arg2)
                throws Throwable {               //动态调用方法
            Object temp = arg1.invoke(this.obj, arg2);        //调用方法,传入真实主题和参数
            return temp;                  //返回方法的返回信息
        }
    }
    /*
        在MyInvocationHandler类的Bind方法中接受被代理的对象的真是主题实现,之后覆写InvocationHandler接口的invoke方法
        完成具体的方法调用
     * */

    ********************************定义接口**************************************

    package xinhuiji_day09;

    public interface Subject {
        String say(String name,int age);

    }
    ******************************定义真实主题实现类************************************

    package xinhuiji_day09;

    public class RealSubject implements Subject{

        @Override
        public String say(String name, int age) {
            return "姓名: "+name+" 年龄: "+age;
        }
    }
    ***********************测试*********************************

    package xinhuiji_day09;

    public class Test {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
            MyInvocationHandler my = new MyInvocationHandler();

            Subject sub = (Subject) my.Bind(new RealSubject());

            String info = sub.say("han", 23);
            System.out.println(info);

        }

    }

  • 相关阅读:
    Django
    Django
    Django
    6.1
    Django
    Django
    Django
    Django
    Django简介
    web应用/http协议/web框架
  • 原文地址:https://www.cnblogs.com/siashan/p/3859863.html
Copyright © 2020-2023  润新知