@随笔 动态代理

夜光序言:

 

愿无深情可回首,迟滞一幕枉少年

 

 

正文:动态代理

 

1. 只学一个方法


方法的作用:在运行时,动态创建一组指定的接口的实现类对象

(在运行时,创建实现了指定的一组接口的对象)

interface A {
}

interface B {
}

Object o = 方法(new Class[]{A.class,B.class})

夜光:o它实现了A和B两个接口~~


-------------


Object proxyObject = Proxy.newProxyInstance(ClassLoader classLoader, Class[] interfaces, InvocationHandler h);

方法作用:动态创建实现了interfaces数组中所有指定接口的实现类对象~~


参数;
1. ClassLoader:类加载器~~
  * 它是用来加载器的,把.class文件加载到内存,形成Class对象~~
2. Class[] interfaces:指定要实现的接口们
3. InvocationHandler:代理对象的所有方法(个别不执行,getClass())都会调用InvocationHandler的invoke()方法。


---------------------------------------------------------

2. 动态代理作用


  最终是学习AOP(面向切面编程),它与装饰者模式有点相似,它比装饰者模式还要灵活~~

----------------------------------------------------------

InvocationHandler

public Object invoke(Object proxy, Method method, Object[] args);

这个invoke()方法在什么时候被调用~
1. 在代理对象被创建时?错误的~
2. 在调用代理对象所实现接口中的方法时?正确的~

* Object proxy:当前对象,即代理对象~在调用谁的方法~
* Method method:当前被调用的方法(目标方法)
* Object[] args:实参~

----------------------------

目标对象:被增强的对象
代理对象:需要目标对象,然后在目标对象上添加了增强后的对象
目标方法:增强的内容

代理对象 = 目标对象 + 增强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值