了解动态代理

目录

动态代理

关键步骤:

案例1:

 案例2:

原理:​编辑 

 动态代理的优点:


动态代理

代理就是被代理者没有能力或者不愿意去完成某件事情,需要找个人代替自己去完成这件事,动态代理就是用来对业务功能(方法)进行代理的。

关键步骤:

1.必须有接口,实现类要实现接口(代理通常是基于接口实现的)。

2.创建一个实现类的对象,该对象为业务对象,紧接着为业务对象做一个代理对象。

案例1:

找明星唱歌:

1.定义一个Skill接口,写出唱歌、跳舞功能。

2.定义一Star实现Skill,并完成相关功能。

3.设计一个方法来返回一个明星对象的代理对象。

4.定义一个测试类,调用方法。

 结果:

 案例2:

模拟某企业用户管理业务,需包含用户登录,用户删除,用户查询功能,并要统计每个功能的耗时。

1.定义一个UserService表示用户业务接口,规定必须完成用户登录,用户删除,用户查询功能。

 2.定义一个实现类UserServiceImpl实现UserService,并完成相关共能。

 3.通过一个静态方法,为用户业务对象返回一个代理对象

4,定义一个测试类,开始测试。

原理: 

 

 结果

 动态代理的优点:

1.非常灵活,支持任意接口类型的实现类对象做代理,也可以直接俄为借口本身做代理。(看下面代码)

2.可以为被代理对象的所有方法做代理。

3.可以在不改变方法源码的情况下,实现对方法功能的增强。

4.不仅简化了编程工作、提高了软件系统的可扩展性,同时也提高了开发效率。

增加泛型使其可以为任意接口类型的实现类对象做代理。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值