總結(jié)自https://www.bilibili.com/video/BV1To4y1o7Eb
retrofit封裝了Okhttp 本身并不能進(jìn)行網(wǎng)絡(luò)請(qǐng)求。只能在Android使用的網(wǎng)絡(luò)請(qǐng)求框架。


request:統(tǒng)一完成(post/get/...)
回調(diào)陷阱:完成上一步網(wǎng)絡(luò)請(qǐng)求才能進(jìn)行下一步網(wǎng)絡(luò)請(qǐng)求。

Retrofit簡(jiǎn)化了網(wǎng)絡(luò)請(qǐng)求。優(yōu)化了網(wǎng)絡(luò)請(qǐng)求的使用。



build設(shè)計(jì)模式:參數(shù)》5個(gè);存在可選參數(shù)。
retrofit.java這里使用的設(shè)計(jì)模式:
外觀、門面模式:本生并不具備什么功能,封裝了網(wǎng)絡(luò)請(qǐng)求的接口。

Retrofit的create為什么用動(dòng)態(tài)代理?


這行代碼是Retrofit的核心,返回了一個(gè)對(duì)象。
等于new 了一個(gè)ISaredListService()對(duì)象
動(dòng)態(tài)代理。

1.對(duì)接口了進(jìn)行攔截。獲取到所有的注解信息,即是構(gòu)建request動(dòng)態(tài)變化的對(duì)象
2.就可以動(dòng)態(tài)構(gòu)建帶著具體請(qǐng)求的url。
3.解決了構(gòu)建url繁瑣的問(wèn)題。

serviceMethod設(shè)計(jì)理念

loadServiceMethod方法包含大量反射、大量解析。
所以設(shè)計(jì)了一個(gè)存放serviceMethod的緩存



每一個(gè)接口都有一個(gè)對(duì)應(yīng)的serviceMethod。
