Android開源框架如何說-Retrofit2

概念

  • 一個類型安全的、Android或者Java的客戶端,基于RESTful Api,將底層代碼都封裝起來,只是暴露除了我們業(yè)務(wù)中的數(shù)據(jù)模型和操作方法

  • 大量使用設(shè)計模式

    • 建造者、外觀、動態(tài)代理、適配器、策略、裝飾
  • 大量使用注解

    • 方法注解:@GET @POST、@PUT、@DELETE、@PATCH、@OPTIONS、@HTTP
    • 標記注解:@FormUrlEncoded、@Multipart、@Streaming
    • 參數(shù)注解:@Query 、@QueryMap、@Body、@Field、@FieldMap、@Part、@PartMap
    • 其它注解:@Path、@Header、@Headers、@Url
  • 基本用法

    • 定義對象Bean,定義訪問數(shù)據(jù)接口
    • 建造者模式創(chuàng)建Retrofit
    • Retrofit.create(Interface.class) 返回請求代理代理對象
    • enqueue:異步,execute:同步

整體架構(gòu)(可以從以下幾個每個點深入切入)

  • RESTful:HTTP
  • 接口:面向接口編程
  • 注解:基礎(chǔ)注解、運行時期注解、編譯時期注解(擴展APT)
  • 設(shè)計模式:
    • 代理模式:靜態(tài)代理、動態(tài)代理(原理)、Cglib(概念)
    • 策略模式:擴展性、異同點
  • 流程解析:

面向接口編程(方便程序使用多態(tài) 、代碼擴展性更強、降低代碼耦合)

  • Call接口:發(fā)起請求的方法,包括同步請求、異步請求、取消請求等
  • CallAdapter接口:請求適配器,用于RxJava轉(zhuǎn)化成一個Retrofit中的Call<T>
  • Callback接口:一個對應(yīng)成功的回調(diào)onResponse,一個對應(yīng)失敗的回調(diào)onFailure,此處回調(diào)在主線程
  • Converter接口:職責(zé)主要是做返回的數(shù)據(jù)進行類型轉(zhuǎn)化,比如json的轉(zhuǎn)換

流程解析

  • Retrofit總體使用的是外觀模式,Retrofit持有所有子系統(tǒng)的引用
  • Retrofit創(chuàng)建(建造者模式)有兩個比較重要的兩個Factory,分別是CallAdapter、Converter
  • retrofit.create()使用動態(tài)代理,解析自定義Api的方法,每個方法對應(yīng)一個ServiceMethod(解析定義的注解,轉(zhuǎn)化成真實的請求api)
  • 執(zhí)行請求:定義OkHttpCall真正請求地方
  • 處理響應(yīng):parseResponse()此處Converter
整體流程
單一流程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡介 剛接觸Retrofit的時候,就寫了一篇簡單的使用介紹:Retrofit 2.0基本使用方法,算是對Retr...
    Whyn閱讀 3,106評論 4 24
  • Retrofit是squareup公司的開源力作,和同屬squareup公司開源的OkHttp,一個負責(zé)網(wǎng)絡(luò)調(diào)度,...
    藍灰_q閱讀 42,123評論 23 281
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評論 25 709
  • 翻開同學(xué)錄,又想起他,之前同學(xué)這樣說:“忘不了他只是你的不甘心罷了。”我沉默了 從二0一三的暑假到現(xiàn)在我們一直...
    喬哈里閱讀 322評論 3 4
  • 同園弄清風(fēng),且覓蜜尋香。 不知筱籬山外,晨夕幾消長。 戲暖春爭苾?nèi)?,唾憨姿怪無賴,離意說輕狂。 當(dāng)時梨花開,只道是...
    白鳥五月閱讀 257評論 0 1

友情鏈接更多精彩內(nèi)容