zoukankan      html  css  js  c++  java
  • JDK代理(必须代理类要实现一个接口)

    代理:

    代理公司:比如员工员工出差,中间买机票,订酒店  把中间的无关事情交给代理公司去办

    Java

    代理

    直接调用方法运行

    把方法告诉代理对象,让代理对象帮我执行

    比如我每次在进行数据更新的时候要记录日志,记录日志的过程交给代理去做

     

    JDK代理

    public class MyProxy  implements InvocationHandler {

     

        private Object obj;//需要代理的对象

     

        public MyProxy(Object obj) {

            this.obj = obj;

        }

     

        public Object getObj() {

            return obj;

        }

     

        public void setObj(Object obj) {

            this.obj = obj;

        }

     

     

        @Override

        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

     

            long start =System.currentTimeMillis();

            //反射调用方法

            Object invoke = method.invoke(obj, args);

     

            long end=System.currentTimeMillis();

            System.out.println("用时"+(end-start));

            return invoke;

        }

    }

     

     

      @Test

        public void test1(){

            //需要被代理的对象

            CardDao dao=new CardDaoImpl1();

            //交给代理类

            MyProxy proxy=new MyProxy(dao);

            //让代理公司代为执行

            CardDao d = (CardDao) Proxy.newProxyInstance(dao.getClass().getClassLoader(), dao.getClass().getInterfaces(), proxy);

            d.update();

        }

     

  • 相关阅读:
    JS的IE和FF兼容性问题汇总
    解决flash挡住层的问题
    javascript 代码优化工具 UglifyJS
    理解面向对象
    js中的等号与非等号
    js 的数据类型转换
    js优化 ----js的有序加载
    各浏览器对页面外部资源加载的策略
    js 执行效率
    脚本的加载,解析,与执行
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12918814.html
Copyright © 2011-2022 走看看