#Java#动态代理,大概是Java里最难弄懂的知识点了吧
文章图片
文章图片
文章图片
文章图片
今天是刘小爱自学Java的第54天 。
感谢你的观看 , 谢谢你 。
话不多说 , 开始今天的学习:
终于还是要学动态代理了 , 不管多难最终还是得搞定它 。
在学它之前 , 先学习一种设计模式 。
一、装饰设计模式举一个现实里明星和经纪人的例子:
现有一个明星 , emm , 就叫洛天依吧 。
明星是一种身份 , 很多人都可以是明星 , 在Java里面可以将其定义成一个接口 。
洛天依具体是指某个人 , 在Java里面可以将其定义成一个类 , 同时她的身份就是明星 , 那么实现明星接口就好了 。
1LuoTianYi类
①创建star接口
这是一个明星接口 , 有三个抽象方法:
唱歌sing(int money)方法 , money就是出场费;
跳舞dance(int money)方法 , 也需要对应的出场费;
休息Sleep()方法 。
不同的明星会有不同的歌和舞 , 所以使用抽象方法表示 。
②创建LuoTianYi类
她是一个明星 , 所以需要实现star接口 , 并重写其中的方法 , 说明自己会唱什么歌 , 会跳什么舞 。
好 , 现在问题来了 , 有人要请洛天依唱歌跳舞 。
我们都知道明星一般都会有自己的经纪人 , 一般都是由经纪人出面谈合作 。
噔噔蹬蹬 , 刘小爱闪亮登场了 , 刘小爱是谁?
他是LuoTianYi的经纪人 。
2刘小爱类
①创建刘小爱类
类中有一个成员变量Star , 构造方法参数为star 。
这是什么意思呢?
刘小爱同时是很多明星的经纪人 , 所以他的参数为star接口 , 创建该类对象的时候 , 需要传入star接口的实现类 。
找那个明星合作 , 创建刘小爱对象时说明就好了 , 这是面向接口编程的核心思想 。
②重写Sing()方法
现在有人要谈唱歌合作 , 那由刘小爱去谈价格 , 价格不够那不行 , 价格够了就让对应的明星出场唱歌 。
③重写Dance()方法
同样的道理 , 也是价格谈判 , 出场费都是1万 。
④重写sleep()方法
休息时间 , 不谈合作 。
3测试类最后一切都设置好了 , 做一个测试:
①创建刘小爱对象
同时说明此时要找哪位明星谈合作 , 哦 , 是LuoTianYi 。
②说明合作价格
唱歌一万五 , 跳舞五千 。
③控制台输出
唱歌钱够了 , 所以LuoTianYi开始唱歌了;
跳舞钱不够 , 所以没有跳舞 。
刘小爱这个类就是LuoTianYi这个类的代理 。
调用者找洛天依合作 , 其实是在和刘小爱在谈 , 在调用者的眼里 , 刘小爱就是LuoTianYi 。
【#Java#动态代理,大概是Java里最难弄懂的知识点了吧】现在合作谈拢了 , 由谁去执行?由LuoTianYi去执行 。
在IO流中 , 也有和其相似的情况:
我们使用的是缓冲字符流 , 但是缓冲流的底层是由字符流来执行的 , 那么缓冲字符流就是字符流的代理 。
推荐阅读
- 木子李同学|自带可悬浮动态字幕,有“情绪”的蓝牙音箱!全透明机身
- 全国能源信息平台|总投资70亿元,项目动态│中北润良锂电新能源产业基地项目落户安徽淮北
- 油炸小可爱|MIUI团队:天气取消动态图标有两个原因
- 融睿传媒|支付宝发动态,这是要“乘风破浪”的出道吧,老干妈与腾讯掐架
- 全球企业动态|上海迪士尼和都乐签署战略联盟协议;南京丽思卡尔顿酒店正式启幕
- 电子工程世界|Vicor电源模块赋能机器狗,小巧快速高动态
- 众投邦|年内蔚来将建超50座换电站,众投邦已投项目动态:蔚来中国完成注资73.56亿元
- 新电商动态|柔性铰链都安排上了?,外媒爆料苹果正在研发可折叠的iPhone
- 期权酱|做期权代理选择哪个平台好?
- 空枝|360能让它再焕新生吗?,《坦克世界》代理商易主