Retrofit 原始碼解析

2021-10-03 05:47:52 字數 900 閱讀 5154

service:定義的介面類

servicemethod:service 中的方法

call:引數型別是 r 的 call,實際發起網路請求的類

responsetype(r):call<> 的引數型別;如 call的 responsetype 為 aclass

calladapter:介面卡,將乙個 call 物件轉為乙個型別 t 的物件

returntype(t)

呼叫 servicemethod(invoke)

轉換 call

1、requestfactory、callfactoty、calladapter.factory、converter.factory 都在**生成?他們的產品都在**生成(即 factory 在**使用)?他們的產品在**使用?

callfactorylistlist在 retrofit 物件建立時生成。

requestfactorycalladapterconverter在 servicemethod 物件建立時生成。

...

parseannotations(.

..)

requestfactorycallfactoryconverter在建立 call 時使用

calladapter 在轉換 call 時使用

2、幾種 calladapte***ctory 的作用?

Retrofit原始碼 簡單瀏覽

這裡用到了動態 這裡的動態 的作用是,你只需要宣告式地寫了乙個介面然後它 這個介面類,事實是並沒有產生乙個實際的類.public inte ce apiservice 這是常用的方式,使用宣告式地,寫了乙個介面,getnewlist用註解表明它的請求方式,轉換工廠的方法引數.如果不用動態 你也可以像...

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...