sdk开发时,对外暴露的接口封装

Posted 世界很大,风住过这里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sdk开发时,对外暴露的接口封装相关的知识,希望对你有一定的参考价值。

思考,用同步还是异步?

eg.登陆接口

1.定义接口LoginCallBack,两个函数 请求成功和失败

public interface LoginCallBack{
    public void OnSuccess(SDKUser user);    //登陆成功的回调,我们的需求是给调用者一个封装好的SDKUser类,一些用户信息的get/set 略
    public void OnFailed(String msg);       //传给调用者错误信息
}

2. 对外暴露的SDK主类中,进行处理具体业务逻辑

public class SDK{ 
public void login(String username,String password,LoginCallBack callback) { //这里一般都要开线程,或在异步任务里
    try{ 
        //执行网咯请求,异步任务里可以用同步请求来解耦  
    if(网络请求成功){
        // 解析json为bean
        ballback.OnSuccess(bean);  
     }else {//根据失败信息,调用接口失败方法
        String str="登陆失败!";  
       ballback.OnFailed(str);  
       }
      }catch(Exception e){
          String str="登陆失败!"; // 
       ballback.OnFailed(str);  }  
  }); 
}

3.使用者进行调用

SDK.login("admin","123456",new LoginCallBack(){//参数为账号密码
         @Override
        public void OnSuccess(SDKUser user){
             //请求成功后,这里调用者就可以拿到login方法里json解析后的bean
          }

            @Override
        public void OnFailed(String msg){
             //请求失败后,这里调用者可以拿到我们返回给他的提示信息
          }
});

由于接口既需要返回我们定义的数据通常为json等,有异常时又需要返回异常信息 所以接口通常都写成异步处理,给调用者回调的方式

 

以上是关于sdk开发时,对外暴露的接口封装的主要内容,如果未能解决你的问题,请参考以下文章

借助Gradle Plugin解决模块化开发中模块如何对外暴露接口

面向对象-封装性

C语言开发函数库时利用不透明指针对外隐藏结构体细节

继承和类设计

服务器开发-对外接口返回数据-封装模板

支付宝支付 微信支付SDK接口不统一? 盘他!