總結(jié)自https://www.bilibili.com/video/BV1To4y1o7Eb
retrofit封裝了Okhttp 本身并不能進(jìn)行網(wǎng)絡(luò)請求钥组。只能在Android使用的網(wǎng)絡(luò)請求框架谍失。
request:統(tǒng)一完成(post/get/...)
回調(diào)陷阱:完成上一步網(wǎng)絡(luò)請求才能進(jìn)行下一步網(wǎng)絡(luò)請求捎琐。
Retrofit簡化了網(wǎng)絡(luò)請求蠢琳。優(yōu)化了網(wǎng)絡(luò)請求的使用褒翰。
build設(shè)計(jì)模式:參數(shù)》5個猿涨;存在可選參數(shù)叽粹。
retrofit.java這里使用的設(shè)計(jì)模式:
外觀秘通、門面模式:本生并不具備什么功能铺浇,封裝了網(wǎng)絡(luò)請求的接口痢畜。
Retrofit的create為什么用動態(tài)代理?
這行代碼是Retrofit的核心,返回了一個對象丁稀。
等于new 了一個ISaredListService()對象
動態(tài)代理吼拥。
1.對接口了進(jìn)行攔截。獲取到所有的注解信息线衫,即是構(gòu)建request動態(tài)變化的對象
2.就可以動態(tài)構(gòu)建帶著具體請求的url凿可。
3.解決了構(gòu)建url繁瑣的問題。
serviceMethod設(shè)計(jì)理念
loadServiceMethod方法包含大量反射桶雀、大量解析矿酵。
所以設(shè)計(jì)了一個存放serviceMethod的緩存
每一個接口都有一個對應(yīng)的serviceMethod。