zoukankan      html  css  js  c++  java
  • 扩展 Atlas 的客户端 Web Service 调用功能

    Jeffrey Zhao最近在写客户端调用WebService的有关内容,那么我也来说说。Jeffrey Zhao说到了,Beta1中只有一个onComplete,onTimeout、onError、onAborted都没有了,这3个事件都整合到onComplete中,使用者需要自己在onComplete中手动判断到底属于哪个情况。另外Jeffery Zhao最近在讨论继承WebRequestExecutor中说到,XMLHttpExecute._onReadyStateChanged无法重写,所以要跟踪返回就要在WebRequestManager.completeRequest事件中进行。

    这样看来,Beta1的WebService基础代码确实不太友好,我虽然还没有在Beta1用过WebService,但看样子有必要改善它。这次又到讨论继承哪个类?这个不一定要用继承嘛,除了我们熟悉的继承,以及JavaScript天生就支持的prototype模式,我们还可以考虑decorator模式。

    由于我还没开始弄Beta1的WebService扩展,所以在这里仅能提供一段以前写下的用于Atlas June CTP的Web Service调用封装,调用方式为:
    Cattism.BodyMaintainer.Web.Services.call(method, arg1, arg2, ..., configuration);
    其中,method是带调用WebService的代理方法,之后arg1, arg2, ..., configuration就和直接调用WebService代理方法时使用的参数列表一致。该封装提供4大回调函数的一致性处理,例如如果你需要onError时一律将Exception信息通过debug.trace输出,那么你可以在Cattism.BodyMaintainer.Web.Services._onError中添加相应代码。你甚至还可以要求仅当调用时没指定onError回调时才将Exception信息通过debug.trace输出。

    有人会想说我提供的代码看起来不太像decorator模式,对吗?其实我写的时候是完全根据自己的需求写的,写完才想起来这应该做成一个标准的decorator模式,不过也懒得改它了。在这里我只是希望给大家提供一个思路,就是当你觉得Atlas还不够好的时候你应该主动去添加一些代码让它能够满足你的需求,同时思维不一定要限制在基于Atlas的修修补补,你完全可以对Atlas进行二次封装制作一套适合你的个人工具库或者企业类库。

  • 相关阅读:
    密码学常用解码网站
    macOS VMware Fusion 中 vmtools为灰色
    XSS-Payloads
    Tomcat 漏洞总结
    mac 更新完Big Sur需重新配置项目
    sqlmap的使用 ---- 自带绕过脚本tamper
    FTP 日志分析
    CentOS Java环境问题
    Nginx 学习
    英语学习-邮件表达方法 例句
  • 原文地址:https://www.cnblogs.com/cathsfz/p/544327.html
Copyright © 2011-2022 走看看