创建 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方法上做任何的修改。但是对这个方法已经做了增强。这就是之前讲过的 基于接口的动态代理。
但是他也有一个问题。如果我们的类不实现任何接口的时候。他是不能用的

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

执行就会出现代理异常

最新文章

  1. How to: 执行Action当收到数据时
  2. CSS3中的box-shadow
  3. 理解Java中的接口
  4. 用python演示一个简单的AST(抽象语法树)
  5. BZOJ 1801 AHOI2009 中国象棋 递归
  6. 怎么使用OCR文字识别软件图像压缩功能
  7. UUID简记
  8. 高级数据类型-- 字符串(str),切片
  9. 接上篇:将OneDrive云盘挂载到我的电脑!(1024快乐,明年我应该也可以过这个节日了!)
  10. 20165336 2017-2018-2 《Java程序设计》第5周学习总结
  11. LeetCode题解:Flatten Binary Tree to Linked List:别人的递归!
  12. 【LOJ】#2106. 「JLOI2015」有意义的字符串
  13. Codeforces Round #371 (Div. 1) D. Animals and Puzzle 二维倍增
  14. [转]tppabs是什么?如何去除tppabs?
  15. Android 性能分析工具 TraceView
  16. Android WebDriver 浏览器自动测试工具介绍
  17. 利用yacc和lex制作一个小的计算器
  18. CentOs6.5 安装rabbitmq(转)
  19. 重新打造的我的Pugo
  20. 浅谈Facebook的服务器架构(组图)

热门文章

  1. springboot集成dubbo服务报错No provider available for the service
  2. 基于Redis实现分布式锁(转载)
  3. 阅读之spring+Dubbo
  4. qt5--表格控件QTableWidget
  5. 无法将 DBNull.Value 强制转换为类型“System.DateTime”。请使用可空类型
  6. 仅1年GitHub Star数翻倍,Flink 做了什么?
  7. OpenCV笔记(5)(定位票据并规范化、调库扫描文本)
  8. 批处理(.bat)文件使用笔记
  9. 彩色图像--色彩空间 CIELAB、CIELUV
  10. 分区间统计sql、删除重复数据