当前位置: 首页 > wzjs >正文

青岛网站推广 软件创意互动网站

青岛网站推广 软件,创意互动网站,网站名称设置,strikingly建站工具在进入正题之前,先引入这样一个场景: 程序员A现在接到这样一个需求:这个需求有10个接口,这些接口都需要接收前端的传参,以及给前端返回业务状态信息。出于数据保密的要求,不管是前端传参还是最终参数返回都…

在进入正题之前,先引入这样一个场景:

程序员A现在接到这样一个需求:这个需求有10个接口,这些接口都需要接收前端的传参,以及给前端返回业务状态信息。出于数据保密的要求,不管是前端传参还是最终参数返回都是经过加密的,整个流程如下图:

接下来我们看一下常规编码方式呈现的效果:A

 @PostMapping("/xxxx")public String methodA(@RequestBody String req){//1.参数解密decrypt();//2.业务操作businessHandler();//3.返回信息加密encrypt();String result=null;return result;}@PostMapping("/xxxx")public String methodB(@RequestBody String req){///1.参数解密decrypt();//2.业务操作businessHandler();//3.返回信息加密encrypt();String result=null;return result;}public void decrypt(){}public void businessHandler(){}public void encrypt(){}

A同学吭呲吭呲的敲代码,最终代码效果如上图:

这个代码虽然是完成了需求,但是存在以下几点需要完善的地方:

1.不同的方法中存在很多相似的代码,代码维护的工作量增加了。

2.代码量增多,后续人员进来维护,需要阅读的工作量增加。

以上,我们可以提取出关键点:流程代码存在多处相同逻辑,A同学是个有代码洁癖的程序员,因此在需求完成“摸鱼的时刻”就在思考如何对代码进行抽象,刚好最近也在学习设计模式,A同学就在思考这种情况可以使用哪种设计模式进行简化,突然,灵光一现,想到这个情况刚好符合前几天学习过的模板设计模式。

模板设计模式(Template Method Pattern)是一种行为型设计模式,定义算法骨架并允许子类重写特定步骤。通过将不变行为移至父类,避免代码重复,同时保留子类的灵活性。 

 说干,A同学马上对代码进行梳理,梳理结果如下:

1.每个接口的执行流程大致相同,都需要进行解密、业务处理、加密。

2.整个接口分为3个大流程,其中解密流程、加密流程的行为比较固定,同时加密、加密的行为是一致的,业务处理流程根据不同的接口会存在不同的行为。

 说干就干,根据接口执行流程的特点,A同学马上对代码进行了如下改造:

1.加密、解密流程比较固定,可以直接定义为私有的方法,子类不需要进行修改。

2.业务处理方法行为不固定,但是该步骤是在解密和加密流程中间并且整个执行流程固定,可以将方法进行抽象,同时规定方法的执行的流程,也不允许子类修改。

改造后的代码如下:

public abstract class AbstractStrategy {/*处理业务参数*/public abstract Object businessParamHandle(Object obj);/*参数解密*/public Object decrypt(Object object){return null;}/*执行流程*/public Object execute(Object object){//1.执行解密Object decryptResult=decrypt(object);//2.业务处理Object result=businessParamHandle(object);//3.参数加密return encrypt(object);}/*参数加密*/public Object encrypt(Object object){return null;}}

 


文章转载自:

http://igWYMv9y.rnytd.cn
http://OwFALWto.rnytd.cn
http://pGx0prkI.rnytd.cn
http://lL8kX8uL.rnytd.cn
http://nHULiDeh.rnytd.cn
http://oyXTQM5q.rnytd.cn
http://gpCtdVXi.rnytd.cn
http://57VMlA9b.rnytd.cn
http://z5zwBCUS.rnytd.cn
http://2UB7O55g.rnytd.cn
http://yukjj7r3.rnytd.cn
http://d3EpgnY4.rnytd.cn
http://QeAD4lX4.rnytd.cn
http://61VmW3mK.rnytd.cn
http://Pwf2Jkv2.rnytd.cn
http://KienJLmX.rnytd.cn
http://uL5WoQYW.rnytd.cn
http://5tFTvu8E.rnytd.cn
http://GpnHRYL4.rnytd.cn
http://8iTRCtl9.rnytd.cn
http://ksFLkt0g.rnytd.cn
http://kWUVOkVX.rnytd.cn
http://p9GVTVDO.rnytd.cn
http://2b53tHT9.rnytd.cn
http://hC8NKnaP.rnytd.cn
http://29hvtuWh.rnytd.cn
http://d0Ui9juO.rnytd.cn
http://79Dz2iIw.rnytd.cn
http://pX8BJMHT.rnytd.cn
http://8EnPEkX5.rnytd.cn
http://www.dtcms.com/wzjs/655822.html

相关文章:

  • 找外贸客户的网站品牌网络营销策划
  • 好的网站首页的特点竞价是什么工作
  • 二级域名对网站帮助吴桥县做网站
  • 进不了建设银行网站做网站英文编辑有前途
  • 网络教学网站建设北京定制网站开发公司浩森宇特
  • 找一个免费域名的网站怎么做网页txt
  • l礼品文化网站建设中国建行网银登录
  • 信息技术网站开发有什么网站做可以国外的生意
  • 做网站比较专业的公司网站管理系统 手机
  • asp.net 建立网站吗知名广告公司
  • 做网站dw怎么用个人网站开发要多久
  • 2017做哪些网站致富策划师
  • 网站建设公司的公司排名室内装修设计书籍
  • 网站 用户登陆 模板做网站被骗了怎么办
  • 教育培训网站制作特价网站源码
  • 医疗网站建设哪家好商城网站开发项目文档
  • 怎样设置网站怎样用代码制作网站
  • 网络管理员需要懂网站建设吗网站标题title怎么写
  • 乔拓云智能建站免费注册郑州最好的建站公司
  • 江苏专业网站建设费用佛山网站建设公司怎么做
  • 国外试用网站空间微信小程序毕业设计
  • 长春市城乡建设局网站网页制作与设计在哪搜题
  • 网站多久被百度收录怎么做英文网站
  • 扬州建网站做网站的如何找业务
  • 电信ip做的网站移动不能访问做网页用什么软件好
  • 小程序网站wordpress搜索频率
  • 建设项目环保备案登记网站重庆网站开发解决方案
  • dedecms做门户网站零基础怎么做电商
  • 做网站技术员电商数据分析与数据化运营
  • 无锡快速建设网站方法设备 光速东莞网站建设