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

网站建设襄阳网站建设优化加盟代理

网站建设襄阳,网站建设优化加盟代理,免费视频制作app,自己如何建设网站善用工具不久前#xff0c;在博客中 #xff0c;我解释了Groovy中Closure的含义。 这篇博客文章将解释一个使用它们的好例子。 最近#xff0c;我发现自己不得不为服务AJAX请求的大量后端Controller API编写相同的异常处理逻辑。 就像这样#xff1a; class ApiRugbyPlaye… 善用工具 不久前在博客中 我解释了Groovy中Closure的含义。 这篇博客文章将解释一个使用它们的好例子。 最近我发现自己不得不为服务AJAX请求的大量后端Controller API编写相同的异常处理逻辑。 就像这样 class ApiRugbyPlayerController {JSON getPlayerStats() {try {...// invoke business service method to get player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}}JSON updatePlayerStats() {try {...// invoke business service method to update player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}}JSON queryPlayerStats(){try {...// invoke business service method to query player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}} } 可以看出这里有一些代码重复。 本着DRY的精神不要重复自己最好只定义一次此异常处理逻辑然后重新使用它。 因此我定义了以下实用程序方法该方法实现了异常处理模式并采取了关闭操作该闭包将为其执行异常处理。 private JSON withExceptionHandling(Closure c) {try {...c.call();} catch (ServiceException serviceException) {// dont care too much about this. // log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client ...} catch (Exception ex) {throw new ApiException(ex)}} 我们可以使用{}将代码封闭在Groovy中以使其成为闭包。 这意味着我可以将Controller方法中的逻辑转换为Closures并将其传递给Utility方法。 而且当我将其传递给实用程序方法时我甚至不需要将其传递给内部因为Groovy并不使您满意。 因此这意味着我可以消除所有常见的异常处理消除代码膨胀而且我的Controller API更整洁。 class ApiRugbyPlayerController {JSON getPlayerStats() {withExceptionHandling {...// invoke business service method to get player stats} }JSON updatePlayerStats() {withExceptionHandling {...// invoke business service method to update player stats} }JSON queryPlayerStats(){withExceptionHandling {...// invoke business service method to query player stats} }private JSON withExceptionHandling(Closure c) {try {...c.call();} catch (ServiceException serviceException) {// dont care too much about this. // log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client ...} catch (Exception ex) {throw new ApiException(ex)}} } 所以我们去了。 我们坚持DRY原则避免了代码膨胀并为我们的异常处理提供了专门的场所确信它可以始终如一地实现。 Groovy闭包的这个例子有点像但是就像JavaScript中的第二次调用一样。 如果我们想用Java做类似的事情那将涉及很多代码。 我们可以使用类似命令模式的东西并将它们的执行放入异常处理逻辑中。 您将具有更多的去耦功能但是您将拥有更多的代码。 或者您可以使所有AJAX API输入一个通用方法例如Front Controller但在该处处理通用异常。 同样可能但仅需更多代码。 在下一次之前请多保重。 参考 都柏林技术博客博客上的JCG合作伙伴 Alex Staveley 很好地使用了闭包 。 翻译自: https://www.javacodegeeks.com/2014/03/good-use-of-closures.html善用工具
http://www.pierceye.com/news/420335/

相关文章:

  • 潍坊 营销型网站建设室内设计和装修设计
  • 滕州市东方建设工程事务有限公司网站房房网
  • php网站漂浮广告代码百度一下打开网页
  • 华为公司网站建设方案模板自己做网站的费用
  • 网站设计命名规范广州短视频内容营销平台
  • 天津专门做网站的公司成都市城乡建设局网站
  • 品牌网站升级wordpress 4.9中文
  • 网站搭建软件广告标识标牌制作公司
  • 做造价在哪个网站查价格微信小程序是什么语言开发的
  • 网站建设平台接单做电子商务平台网站需要多少钱
  • 甘肃网站seo技术厂家企业简介内容
  • 视觉中国设计网站做音乐网站
  • 金坛区建设工程质量监督网站西宁百姓网免费发布信息
  • 运维 网站开发网站如何引入流量
  • 网站建设泉州效率网络西安网站设计公司哪家好
  • 青羊建站报价网上能注册公司吗怎么注册
  • 免费网站虚拟主机整站seo技术搜索引擎优化
  • 青岛网站建设订做油画风网站
  • 网站备案名称的影响吗六安哪里有做推广网站
  • 网站建设策划书网站发布与推广长沙公司网站费用
  • 设计网页英语口碑优化seo
  • 试客那个网站做的好北京做软件开发的公司
  • 网站多套系统如何调用网页大图素材
  • 沧州网站建设方案咨询wordpress需要 伪静态
  • 安徽省住房和城乡建设部网站郑州百姓网免费发布信息
  • 电子商务网站开发是指聊城市城乡建设部网站查询
  • 聊天室网站模板国内市场调研公司
  • 网站做不做备案有什么区别网站媒体给房开做内容推广
  • 昆明专业网站建设模板蚌埠app制作公司
  • 平面ui设计网站网页布局设计类型