JAVA设计模式之代理模式

这里代理模式的实现有两种:静态代理模式,JDK动态代理模式

 

静态代理模式:

 

实现方式为定义一个公共的接口,不管是实现类还是代理类都实现该接口,要在实现类上加上一个代理模式,那么在代理模式里封装该实现类的实例,那么在代理类里做具体的事情。如安全性检查则可以在调用实现类的每个方法前加上安全检查的方法。

 

定义接口和其实现类以及代理类:

 

UserService接口

UserServiceImpl实现类(实现UserService接口)

UserServiceImplProxy代理类(实现UserService接口)

写个测试类看看效果:

静态代理的缺点就是每个不同的实现如果要用到代理的话,得有自己的接口以及专有的代理类继承该接口,麻烦且费事,有没有可以统一的代理模式呢?这样大家就共用这样一个代理类呢?JDK动态代理可以实现该功能,使代理变得更简单了。

 

JDK动态代理:

实现方式是建立一个统一的代理模型类SecurityHandler,该类继承自InvocationHandler。里面得有生成代理类的方法和调用具体实现的方法。

建立SecurityHandler代理模型类:

借用前面的UserService接口和实现类UserServiceImpl。

开始写一个测试类吧:

 

这些都是我们手动的方式实现代理的,不过Spring帮我们做了这样的事情,我们就可以不用费心管理这些麻烦的事,参考Spring之AOP篇

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值