WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 Scala 指南: 用 Scitter 更... 阅读

面向 Java 开发人员的 Scala 指南: 用 Scitter 更新 Twitter

 2009-12-09 00:00:00 来源:WEB开发网   
核心提示: 测试在实施这样的重构之前,先运行 ant test,面向 Java 开发人员的 Scala 指南: 用 Scitter 更新 Twitter(5),以确保原有的所有基于 GET 的请求 API 仍可使用 — 事实确实如此,(这里假设生产 Twitter API 或 Twitter 服

测试

在实施这样的重构之前,先运行 ant test,以确保原有的所有基于 GET 的请求 API 仍可使用 — 事实确实如此。(这里假设生产 Twitter API 或 Twitter 服务器的可用性没有变化)。一切正常(至少在我的计算机上是这样),所以实现新的 execute() 方法就非常容易:


清单 4. Scitter v0.3: endSession
 def endSession : Boolean = 
 
  { 
 
   val (statusCode, statusBody) = 
 
    Scitter.execute("http://twitter.com/account/end_session.xml", 
 
     Map("" -> ""), username, password) 
 
 
   statusCode == 200 
 
  } 

这实在是再简单不过了。

接下来要做的是实现 rate_limit_status API,它有两个版本,一个是经过验证的版本,另一个是没有经过验证的版本。我们将该方法实现为 Scitter 对象和 Scitter 类上的 rateLimitStatus,如清单 5 所示:


清单 5. Scitter v0.3: rateLimitStatus
package com.tedneward.scitter 
 
{ 
 
 object Scitter 
 
 { 
 
  // ... 
 
 
 
  def rateLimitStatus : Option[RateLimits] = 
 
  { 
 
   val url = "http://twitter.com/account/rate_limit_status.xml" 
 
   val (statusCode, statusBody) = 
 
    Scitter.execute(url) 
 
   if (statusCode == 200) 
 
   { 
 
    Some(RateLimits.fromXml(XML.loadString(statusBody))) 
 
   } 
 
   else 
 
   { 
 
    None 
 
   } 
 
  } 
 
 } 
 
  
 
 class Scitter 
 
 { 
 
  // ... 
 
 
 
  def rateLimitStatus : Option[RateLimits] = 
 
  { 
 
   val url = "http://twitter.com/account/rate_limit_status.xml" 
 
   val (statusCode, statusBody) = 
 
    Scitter.execute(url, username, password) 
 
   if (statusCode == 200) 
 
   { 
 
    Some(RateLimits.fromXml(XML.loadString(statusBody))) 
 
   } 
 
   else 
 
   { 
 
    None 
 
   } 
 
  } 
 
 } 
 
} 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:面向 Java 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接