Android Retrofit裏的設計模式

一、Retrofit三步走

1、創建Bean或者Model接收數據返回

2、創建一個描述網絡請求的接口

3、創建Retrofit實例

4、用Retrofit實例創建網絡請求接口實例

5、調用接口實例的getCall獲取call

6、調用Call請求方法

二、Retrofit

Retrofit就是一個定義接口然後對OKHttp的一個封裝,事實上網絡請求還是在OKHttp裏進行。利用註解和參數利用動態代理來替使用者生成網絡請求的Request和Call,來完成網絡請求的一個框架。

三、Retrofit的設計模式(重點)

1、構建者模式

建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個複雜的對象。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。將一個複雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示。

使用Builder內部類,通過鏈式調用來完成初始化。讓每一個配置變得清晰。

2、工廠方法

定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行。CallAdapter的get方法使用工廠模式實現了不同平臺的調用。例如RxJavaCallAdapter的get就返回了Observer。

3、外觀模式

外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的接口。這種類型的設計模式屬於結構型模式,它向現有的系統添加一個接口,來隱藏系統的複雜性。

這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託調用。

Retrofit裏面封裝了很多類,其實使用者並不需要知道具體是什麼,只要通過Retrofit來和他們進行交互就行了。

4、策略模式

在策略模式(Strategy Pattern)中,一個類的行爲或其算法可以在運行時更改。這種類型的設計模式屬於行爲型模式。

其實就是將我們的業務邏輯分成不同的策略,使用時可以進行替換即可。

CallAdapter其實就是一個策略,具體實現的策略的方法由子類實現。例如RxJavaCallAdapter就是一種策略,要替換成別的Adapter也可以,這就是策略模式。

5、適配器模式

適配器模式(Adapter Pattern)是作爲兩個不兼容的接口之間的橋樑。這種類型的設計模式屬於結構型模式,它結合了兩個獨立接口的功能。

適配器模式可以說是一種中間件,將不同的平臺上的網絡請求封裝成一類,OKHttpCall就是這樣做的。

6、觀察者模式

當對象間存在一對多關係時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會自動通知依賴它的對象。觀察者模式屬於行爲型模式。

CallBack作爲觀察者觀察OKHttpCall,根據執行的不同做出反應。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章