zoukankan      html  css  js  c++  java
  • 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 static void login(String username,String password,LoginCallBack callback) { 
        try{  
            //这里一般都在子线程或异步任务中处理  网络请求(我用xutils3的异步任务+同步请求) 
    if(请求成功){ // 解析json为bean callback.OnSuccess(bean); }else {//根据失败信息,调用接口失败方法 callback.OnFailed("失败信息"); } }catch(Exception e){ callback.OnFailed("失败信息");
    } }); }

    3.使用者进行调用

    SDK.login("admin","123456",new LoginCallBack(){//参数为账号密码
             @Override
            public void OnSuccess(SDKUser user){
                 //请求成功后,这里调用者就可以拿到SDK主类中login方法里json解析后的bean
              }
    
                @Override
            public void OnFailed(String msg){
                 //请求失败后,这里调用者可以拿到我们返回给他的提示信息
              }
    });

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

    (同步情况就是返回参数不封装直接返回给调用者,这个调用者要自己实现对返回信息的封装)

  • 相关阅读:
    Keras -- 词向量 CNN
    KUDU实时分析
    Keras
    Kalfka
    Linux云
    管理KUDU
    列存储与行存储
    算法笔记 第5章 入门篇(3) --数学问题 学习笔记
    算法笔记 上机训练实战指南 第4章 入门篇(2) --算法初步 4.6two pointers 学习笔记
    算法笔记 上机训练实战指南 第4章 入门篇(2) --算法初步 4.4贪心 学习笔记
  • 原文地址:https://www.cnblogs.com/andlp/p/5975777.html
Copyright © 2011-2022 走看看