動(dòng)態(tài)代理模式在Java Web中的應(yīng)用是非常常見(jiàn)的捏题,在spring框架中大量的用到了動(dòng)態(tài)代理,是比較重要的一個(gè)設(shè)計(jì)模式肉渴,也是非常難理解的設(shè)計(jì)模式之一公荧。
代理類(lèi)在運(yùn)行前不存在、運(yùn)行時(shí)由程序動(dòng)態(tài)生成的代理方式稱(chēng)為動(dòng)態(tài)代理同规。
當(dāng)前的網(wǎng)絡(luò)請(qǐng)求庫(kù)多種多樣循狰,其中Square公司的OkHttp是一個(gè)相對(duì)比較完美的網(wǎng)絡(luò)請(qǐng)求庫(kù),而在其上又封裝了一層Retrofit庫(kù)券勺,為方便快捷的調(diào)用Restful Api提供了一種捷徑绪钥。
調(diào)用Retrofit的過(guò)程:
首先,定義一個(gè)接口关炼,接口中定義網(wǎng)絡(luò)請(qǐng)求的具體方法程腹,在方法上通過(guò)注解配置host,header儒拂,params等信息寸潦。
然后,新建一個(gè)Retrofit對(duì)象社痛,通過(guò)該對(duì)象產(chǎn)生一個(gè)你定義的接口對(duì)象甸祭。
通過(guò)接口對(duì)象調(diào)用具體的方法完成請(qǐng)求。
接口是不可以直接new出來(lái)的褥影,GitHubService接口的實(shí)例就是通過(guò)動(dòng)態(tài)代理的方式實(shí)現(xiàn)的池户。