準確來講,Retrofit是一個RESTful的HTTP網絡請求框架的封裝。設計模式
**緣由:**網絡請求的工做本質仍是由OKHTTP完成,而Retrofit只是負責網絡請求接口的封裝。markdown
tempimg-1302248544.cos.ap-chengdu.myqcloud.com/Img/PingMu/…網絡
請求前:架構
統一的配置網絡請求頭:使用建造者模式、門面模式來對一些參數進行統一的配置,而且將其保存。框架
一致適配請求request:create()方法裏面使用了動態代理模式,這樣子就能夠代理全部類對象。oop
請求後:ui
線程切換:spa
數據適配:線程
Retrofit這個類就是保存一系列的參數給後面使用,使用的是Build模式設計
在構建Retrofit時,採用的是建造者模式、外觀模式
在適配一致請求request時:Create()方法裏面使用了動態代理模式
建造者模式:
外觀模式:
靜態代理模式:
- 代理類和委託類有一樣的接口。
- 代理類主要負責爲委託類預處理消息、過濾消息、把消息轉發給委託類,以及過後的消息處理等。
- 一個代理類的對象與一個委託類的對象關聯,代理類的對象自己並不真正的實現服務,而是經過調用委託類的對象的相關方法,來提供服務。
動態代理模式:
Create()方法會生成一個類的對象,即傳進來的類的對象。
每次調用create方法時,將class傳遞進來,retrofit就會採用動態代理的方式,返回該類的對象。