巧用设计模式之代理模式

前言

前几天接到有一个这样的需求,需要统计显示列表页的接口处理耗时和网络耗时。接到这个需求的时候我第一反应就是使用Spring Aop,自定义一个注解的形式来解决这个问题。于是乎就赶紧把代码写起来。。。。(省略写代码的一大堆)然后遇到个问题,由于项目框架是Spring+Struts+Hibernate,Struts层使用Aop的时候不生效(至于什么原因,楼主个人能力有限,有知道的小伙伴可以留言告诉一下楼主)。但是需求还是要做,只能想其他办法来替代了。

一、代理模式介绍

在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。

在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。
代理模式

二、实战操作

  1. 首先定义一个接口,用来处理列表查询的操作(接口中只有一个方法也称之为函数式接口
    在这里插入图片描述

  2. 创建代理工具类
    在这里插入图片描述

  3. 创建耗时处理类
    在这里插入图片描述

  4. 编写Action用来获取相应时间(都取服务器时间)
    在这里插入图片描述

  5. 编写jsp插件,用于在需要的页面进行引入
    在这里插入图片描述

  6. 对需要使用的接口进行修改
    在这里插入图片描述

  7. 最后需要在取SysRequestTimeUtil类中的Map数据进行处理,即可拿到接口耗时与网络耗时数据。

总结

至此,本次分享告一段落了,此次程序设计参考代理模式,与代理模式有异曲同工之处,虽然和Aop相比较,代码入侵较大,但是在短时间内能解决问题,满足需求,同时也能学习设计模式也未尝不可,当然还是要对程序入侵尽可能的小,不要影响其他代码。如果您有什么更好的建议或意见,欢迎留言或私信分享,感谢。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tiny丶bingo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值