我是靠谱客的博主 健忘橘子,最近开发中收集的这篇文章主要介绍阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾动态代理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


创建 Producer 生产者的类



创建标准。这标准就是接口



创建消费者的类

以前的方式,客户直接找生产厂家

代理商出现以后,怎么去联系代理商

动态代理


第一个参数是ClassLoader 第二个参数是interface是字节码类型,第三个是InvocationHandler是一个接口

代理producer就这么写。代理谁就写谁的getClass().getClassLoader()

代理谁,就是谁的getClass().getInterfaces()



s时而用谁写,所以这里我们new一个InvocationHandler()方法



这里我们只需要干一件事就是:mehtod.invoke(); 
Objetc第一个参数表示谁的方法。肯定不是被代理对象的方法。

匿名内部类访问外部成员变量时。外部成员要求是最终的,所以这里用final来修饰


这样并没有提供增强的代码

消费者买电脑给了1万块。但是代理商要2千块的提成。生产厂家只能拿到8千块





测试



0.8后面加个f。money是float类型的

消费者拿出1万块购买电脑。经销商分走了2千。 生产厂家得到了8千。


出现问题的原因是这里看不成是一个float类型了。



对于生产厂家来说,。他不管。他只管拿到钱 就可以把电脑给你。这个给就是贵经销商。经销商在卖这个产品的时候。他肯定挣钱。


我们并没有在生产厂家的这个saleProduct方法上做任何的修改。但是对这个方法已经做了增强。这就是之前讲过的 基于接口的动态代理。
但是他也有一个问题。如果我们的类不实现任何接口的时候。他是不能用的

这把接口的实现代码注释掉。

执行就会出现代理异常





 

转载于:https://www.cnblogs.com/wangjunwei/p/11353549.html

最后

以上就是健忘橘子为你收集整理的阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾动态代理的全部内容,希望文章能够帮你解决阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾动态代理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部