博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java ---Proxy
阅读量:6985 次
发布时间:2019-06-27

本文共 1104 字,大约阅读时间需要 3 分钟。

hot3.png

1、什么是代理模式

     代理模式相当为一种对象或者类提供一个中间的访问者,如果一个用户不想访问或者不能直接引用某个对象。那么代理就会为我们做很多处理。

2、代理对象所需的角色:

    接口: 代理模式是实现了JAVA中的多态。

下面我用JAVA为大家进行比较详细的介绍:

package cn.proxy;

import java.lang.reflect.InvocationHandler;

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

  //1:实现代理执行句柄

public class Myproxy implements InvocationHandler {
 // 2、必须要实现invoke方法,只要是执行代理类上的任意方法(不包含getClass)
 // 就会先执行这个方法
 @Override
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  Object returnValue = null;
  returnValue = method.invoke(src, args);
  return returnValue; }

 // 3、声明被代理的对象

 private Object src;

 // 4、在构造器方法里面接收这个对象

 public Myproxy(Object object) {
  this.src = object;
 }

 // 5、开发一个静态的方法返回这个被代理的对象的代理

 public static Object getMyproxy(Object object) {
  // 6、创建代理对象

参数:Myproxy.class.getClassLoader(),类装载器装载机的代理

object.getClass()类的接口。多态

代理的对象必须实现 InvocationHandler这个接口的方法

  Object proxyobj = Proxy.newProxyInstance(

    Myproxy.class.getClassLoader(), object.getClass()
      .getInterfaces(), new Myproxy(object));

  return proxyobj;

 }

}

看到上面的代码相信大家也多多少少明白些。实现动态代理应该实现接口。

转载于:https://my.oschina.net/u/2324558/blog/387736

你可能感兴趣的文章
GLSL三种修饰符区别与用途(uniform,attribute和varying)
查看>>
python django django-debug-toolbar 加载缓慢,不能使用。
查看>>
操作系之进程调度及算法详解
查看>>
PHPexcel实列
查看>>
Butterknife 的简单使用 和 配合 Butterknife的插件 Zelezny
查看>>
Magento利用input type=”file”上传图片
查看>>
Android音频开发(4):如何存储和解析wav文件
查看>>
Handler延迟事件使用
查看>>
【DG】Oracle 19c使用dbca来搭建物理DG
查看>>
StringBuilder 、StringBuffer 、 String
查看>>
android studio下NDK开发
查看>>
C#MysqlHelper
查看>>
SpringMVC Hello World 实例
查看>>
MySQL BETWEEN 用法
查看>>
vim开启自动缩进
查看>>
【转】js之iframe子页面与父页面通信
查看>>
java设计模式_模版模式
查看>>
摄像机平滑更随脚本
查看>>
Struts2 标签配置详细
查看>>
需求管理工具比较 Doors_Requistie Pro_RDM
查看>>