范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

设计模式的通俗理解代理模式

  作者 | 浩说编程
  来源 | 公众号:浩说编程
  [ 大厂技术资源 | 研发必备安装包 | 限时免费获取 ]
  本文能为读者创造的价值:了解什么是代理模式代理模式的作用代理模式的应用场景代理的实现方式
  一、什么是代理模式
  代理模式是在用户与请求的服务之间增加一层代理类用于拦截请求,并在代理类中对请求的服务做业务扩展,以达到业务解耦的目的。也就是说用户不直接与服务交互,用户的请求会先经过代理类,然后代理类与真正的服务交互。
  场景模拟:"你的项目里日志记录是怎么做的"
  这个问题读者在面试的时候大概率会被问到,其实本质是在问你"代理模式如何实现",这正是本篇文章对读者的价值所在。日志记录操作跟主业务并无关联,为了代码解耦,提高扩展性,考虑将这部分逻辑分离出来,于是代理模式就成了最佳思路。
  来看具体实现方式:
  码文不易
  你的关注是浩说编程持续更新的动力
  浩说编程会做的更好
  准备工作,先定义一个服务(producer)
  一、静态代理
  调用代理类:
  以上就是静态代理。通过代码和其中的注释读者应该对代理模式有所体会。不过这里想跟读者科普一个专业术语:方法增强(知道的读者可以直接跳过直接看动态代理了)。
  方法增强是指对原方法进行解耦式的业务扩展,上面接口代理类中的makeProduct()方法就是对原实现类方法做了方法增强,请读者细细体会。
  之所以要跟读者特别说明一些专业术语是因为它是我们专业水平的一个体现,相像一下你跟小白萌妹子科普方法增强概念的场景,你的身后是带着光的。
  它对我们不管是日常工作交流还是面试都很有帮助。好了回归正题,继续下一种实现方式:
  二、动态代理
  通过静态代理我们实现了日志记录和主业务的解耦。现在需要普及这个模式了,把项目里所有的接口都做代理,那么问题来了,那么多接口每个都要创建个代理类,工作量难以想象,那怎么办呢?使用动态代理。
  来看一下动态代理的设计思路:不需要读者自己创建代理类。而是创建一个公共的代理配置类,在某个服务需要做代理的时候通过代理配置类自动生成对应服务的代理类。也就是说在需要的时候自动创建代理类,这就是所谓的"动态"。
  看代码实现:还是之前的ProducerService服务
  调用示例:
  动态代理的实现逻辑比较复杂,读者需要反复阅读几次,多加推敲,才能慢慢理解,先不要着急往下看,多体会几次上面的逻辑思路。
  总结一下动态代理的思路:
  1、 创建代理配置类并实现InvocationHandle接口
  2、重写InvocationHandle接口的invoke()方法(用于对原服务方法的业务扩展)
  3、分别创建原服务、代理配置类对象
  4、通过Proxy类的newProxyInstance方法指定并生成需要被代理的服务(传入步骤3创建的对象)
  5、通过4生成的代理类对象,调用服务
  动态代理模式不管是面试还是实际工作中都比较重要,所以上面的示例建议读者多读几次,仔细体会这个过程。
  作者 | 浩说编程
  来源 | 公众号:浩说编程

一代经典唱吧小巨蛋麦克风G2,四向环绕立体声,8种K歌音效互联网的快速发展,推动了许多产品的迭代升级,也衍生出了许多新的产品形态。K歌宝随着近几年短视频和K歌平台的兴起发展迅速,成为了众多用户非常喜爱的消费电子产品。我爱音频网此前为大家详示例讲解PostgreSQL表分区的三种方式我最新最全的文章都在南瓜慢说www。pkslow。com,欢迎大家来喝茶!1简介表分区是解决一些因单表过大引用的性能问题的方式,比如某张表过大就会造成查询变慢,可能分区是一种解决方米OV三家千元系列最值机型,性价比拉满且老少皆宜1,RedmiNote10Pro我称之为目前千元系列性价比之王!搭载了天玑1100处理器,同级别的vivo手机都是3000!此外拥有120Hz高刷5000mAh电池67W有线640叁胖説如何重新定义甜品卡?GTX1060永远滴神三胖说,每天聊点不一样的今日关键词甜品卡什么是所谓的甜品显卡?RTX2060S出来了你说是甜品显卡,RTX3060ti出来了你又说甜品显卡。现在RTX3070ti出来了你还说是甜品每天三分钟搞定linuxshell脚本24后台模式运行当运行脚本的时候在最后加上符号,则对应的脚本在后台运行。建立脚本为,!binbashitem1whileitemlt3dosleep1date1。txtdone输入。test。shOPPO电视怎么看电视直播?非常简单准备工具U盘oppo智能电视在电脑上进入电视家官网,点击下载电视家的安装包,例如3。0,下载好保存到U盘里2将U盘插到oppo电视的USB接口上,选择应用我的应用,点击进入3选择文微信发布Win3。3。5正式版,新增4大新功能最近,微信发布了3。3。5forWindows正式版。本次更新带来了以下几个新功能1微信群键入可所有人微信群聊里的群主和群管理员,在聊天中输入符号,就可以直接使用所有人功能,被到的官翻版本iPadPro新款上架,价格美妙丨iOS14。8最终版即将推出官方翻新iPadPro新款据美国苹果官网显示,官方翻新的iPadPro2020新款已经上架,其中包括11英寸和12。9英寸版本。官方翻新指的是苹果将库存积压导致是外观损坏,或者是用一湃视角继阿里又曝出滴滴?女性频受酒桌侵害,该如何维权8月9日凌晨,阿里巴巴董事会主席兼首席执行官张勇在阿里巴巴内联网上公布了女员工被侵犯的阶段性内部调查结果和处理决定同城零售事业群总裁李永和和HRG徐昆引咎辞职,阿里巴巴首席人力资源苹果手机遭攻击,6国领导人被监听,官方回应不会袭击普通用户对于手机来说最重要的是什么?很多人可能觉得是手机的硬件,一个好的硬件可以保障手机顺畅地运行。但除了硬件之外,操作系统对手机来说同样非常重要,操作系统就相当于手机的大脑,直接控制着手央妈带来中国科技好消息,100亿投资不是闹着玩,网友国产崛起绝了!兄弟们,小米这是打算住在央视了吗?小米黑灯工厂自研的芯片澎湃,上了央视财经的强国基石,央妈是真的给力,时刻关注着中国科技的消息。其实除了小米,其它国产手机品牌近年来对于研发方
苹果警告,销售额或骤减80亿美元当地时间周四,尽管美国宏观经济数据意外大幅下滑,但在科技巨头亮眼财报的推动下,科技类股大幅反弹,带领纽约股市三大股指集体收涨。截至收盘,道指涨1。85,标普500指数涨2。47,纳马斯克据悉在收购推特谈判中谈及裁员与变现问题MarketWatch4月29日消息,据悉,特斯拉CEO马斯克在就440亿美元收购推特的谈判中,与银行人士讨论了这家新闻和社交网络平台裁员以及如何变现的问题。据彭博报道,马斯克没有多家网络平台用错字,账与帐你用对了吗?来源武汉晚报账号才是规范用法武汉晚报讯(记者张维纳)4月28日,一名读者致电本报求助自己经常用微信,是微信帐号还是微信账号,希望记者向专家求证给个准确说法,以免用错了。根据读者反映一文看懂垂直型平台型跨境型电商平台的区别互联网发展到今天,电子商务无疑是最具体的落地方式之一,电商平台犹如一个巨大的试炼场,随着互联网的进阶也在不断的进化,从最初只是单纯融合买卖双方的各种需求,提供人们进行购物的网站或手根据模板生成word文档并填充数据Acess数据库功能VBA代码OptionCompareDatabaseOptionExplicitPrivateSubCommand生成Click()OnErrorGoTooutputerror输入文件名Di想买新能源车之前,想想自己有没有被忽悠再说你可以买电动车,但是我不愿意被忽悠着去买。记住了,但凡你看见什么零首付,终身什么免维护这些字眼儿,那就离坑不远了。哎,你发现这些车都不便宜,对吧?什么理想,未来小鹏至少比比亚迪得高显示IP地址以后的影响大吗?这几年刚学会上网的人感觉隐私被暴露了,营销号和带货号不好忽悠人了,喷子怕被人抓出来其实有互联网那天,所有的网站软件就有这个统计功能,IP地址甚至能细致到定位几百米范围内,基本上每个iPhone14正面机模曝光!刘海真没了机模本文支持暗黑模式MacOtakara网站近年几乎都有爆料苹果机模,今年也是如约带来了iPhone14全系的机模实拍图,还是一如既往的塑料感,真是名副其实的机模。图片来源于Mac服务器安全加固Linux一账号和口令1。1禁用或删除无用账号查看etcpasswd文件查看是否有无用的账号,如果存在则删除,降低安全风险。操作步骤使用命令userdel用户名删除不必要的账号。使用命令pa印度称通过非法汇款扣押了7。25亿美元的小米资金新德里,4月30日(路透社)印度周六表示,在一项调查发现智能手机制造商通过假冒外国实体向外国实体非法汇款后,已从中国小米公司(1810。HK)的当地银行账户中扣押了7。25亿美元。键盘侠,收手吧!外面都是IP归属地显示近期互联网各大内容平台将开始就用户IP属地显示相继发布公告。前阵子我也写过一篇类似的文章。截止今天,头部内容平台基本都已经实现IP属地显示。继抖音百度小红书微博已经实现该功能以外,