Java 代理模式

一直对 Java 动态代理 不是很理解。最近有时间就仔细看了一下相关的代码,然后也参考了一些网友的文章,终于有点感觉了,也不知道对不对,如果有网友看到有哪里不对的地方,欢迎指导。

代理模式 就是将被代理的对象交给代理对象去执行(不是直接去调用被代理对象),然后代理对象在调用被代理对象的时候就可以再加上一些自己的方法(呵呵,感觉 Spring的 AOP 有点像这样,也有点像 拦截器)。

之前接触过的一个应用是这样的,程序分为客户端和服务端,客户端的环境和服务端的环境有所不同,客户端不可能直接调用服务端的代码。当客户端请求服务端时,先将需要的类名传递给 Java 的 InvocationHandler,通过 Proxy 的
    public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
{
...
}

得到被代理对象,然后执行被代理对象的方法的时候在
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
...
}
中通过 HttpURLConnection 将方法名和参数发送给 服务端,服务端拿到 类名,方法名和参数后做相应处理,然后将方法的执行结果通过 response 里面返回给客户端(是不是有些像 RMI)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值