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等,有異常時又需要返回異常信息 所以接口通常都寫成異步處理,給調用者回調的方式

(同步情況就是返回參數不封裝直接返回給調用者,這個調用者要自己實現對返回信息的封裝)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM