1.3 创建服务

相关的一类服务集合由一个专门的Service接口管理,并通过对应的实现类实现具体的创建过程(如封装发送请求需要附带的参数)。LiteSDK通过ServiceManager类负责管理创建所有的Service对象,以下是一个创建获取节点信息的服务的例子:

  1. // 将ProviderManager对象作为参数,通过getNodeService()创建NodeService类型的对象
  2. // NodeService为声明的接口, 实际类型为NodeServiceImpl
  3. NodeService nodeService = ServiceManager.getNodeService(providerManager);
  4. // 通过调用NodeService提供的方法创建相应的服务,类型为Request<NodeResponse>
  5. NodeRequest nodeRequest = nodeService.getNodes();

实际上每个服务创建对应创建一个请求,这个请求都继承了共同的父类——RequestLiteSDK将根据不同的Service接口,返回不同Request子类,同时将用户调用接口的参数params封装到Request请求中,而在创建Request的过程中会附带一个具体的响应类型的声明,该响应类型也将根据不同的Service接口与Request绑定。

Request拥有send()sendAsync()同步发送和异步发送两个方法:

  • send(): 同步发送返回Request根据不同接口绑定的Response
  • sendAsync(): 异步发送返回Request根据不同接口绑定了ResponseFuture接口