• ________________Java代理


    我是自己理解的,可能会有好多问题。

    一  、

    //创建一个需要实现display功能的 接口
    package com.chinasoft.proxy;
    public interface 功能接口 {
    void display();
    }

    二、

    //实现类实现display的方法
    package com.chinasoft.proxy;
    public class 实现功能 implements 功能接口 {
    @Override
    public void display() {
    // TODO Auto-generated method stub
    System.out.println("啦啦啦___这就是爱___啦啦啦");
    }
    }

    三、

    //代理功能 
    package com.chinasoft.proxy;
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    import java.util.logging.LogManager;

    public class 代理功能 implements InvocationHandler {
    private Object target;

    public 代理功能(Object target) {
    super();
    this.target = target;
    }

    public Object getproxy(Class<?> c) {
    return Proxy.newProxyInstance(c.getClassLoader(), target.getClass().getInterfaces(), this);

    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    // TODO Auto-generated method stub

    System.out.println("------------------before------------------");
    Object result=method.invoke(target, args);
    System.out.println("-------------------after------------------");

    return result;
    }

    }

    四、

    //测试
    package com.chinasoft.proxy;

    public class TestIV {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    实现功能 i = new 实现功能();//创建功能的实例
    代理功能 iv = new 代理功能(i);// 实例化InvocationHandler
    功能接口 proxy = (功能接口) iv.getproxy(功能接口.class);//实例化代理
    proxy.display();
    }

    }

     

    五、//测试结果

    ------------------before------------------
    啦啦啦___这就是爱___啦啦啦
    -------------------after------------------

     

  • 相关阅读:
    PTA L1-002 打印沙漏 (20分)
    音乐研究
    LeetCode 155. 最小栈
    LeetCode 13. 罗马数字转整数
    LeetCode 69. x 的平方根
    LeetCode 572. 另一个树的子树
    errno错误号含义
    僵尸进程和孤儿进程
    TCP和UDP相关概念
    图相关算法
  • 原文地址:https://www.cnblogs.com/qiqisx/p/7773792.html
Copyright © 2020-2023  润新知