模塊化解耦框架RxFluxArchitecture1-框架簡介

相關係列文章前端

模塊化解耦框架RxFluxArchitecture1-框架簡介android

模塊化解耦框架RxFluxArchitecture2-基本功能實現git

模塊化解耦框架RxFluxArchitecture3-訂閱管理綁定生命週期github

模塊化解耦框架RxFluxArchitecture4-依賴庫與依賴注入架構

模塊化解耦框架RxFluxArchitecture5-Application多模塊共存併發

架構介紹

架構圖.jpg
模塊化解耦框架 RxFluxArchitecture 採用單向數據流架構 Flux 和雙向綁定架構 MVVM。

架構分爲三個層級 View,ActionCreator,Store。框架

一、View

UI 界面,根據用戶交互調用 ActionCreator 方法,響應 ActionCreator 或 Store 發送的通知,完成 UI 更新。模塊化

二、ActionCreator

完成用戶交互操做(接口調用、耗時操做、頁面跳轉通知等),通知 Store 或 View。post

  • 發送封裝操做結果的通知RxAction到 Store;
  • 發送 UI 響應通知RxChange到 View;
  • 發送操做異常通知RxError到 View;
  • 發送操做異常重試通知RxRetry到 View;
  • 發送操做進度通知RxLoading到 View。

三、Store

維護 View 中須要的數據,接收操做結果通知RxAction,提取其中封裝的數據供 View 使用,處理不一樣的業務邏輯。單元測試

  • 發送 UI 響應通知RxChange到 View,進行 UI 更新;
  • 經過LiveData使 View 進行 UI 更新。

框架特色

一、單向數據流

使用 FaceBook 推出的前端架構 Flux,數據朝單一方向流動,無操做方法回調,上下層級關係明顯,邏輯清晰。

二、層級解耦

核心庫core-eventbus(帶有 Tag 功能)實現數據總線功能,架構中上一層級不持有下一層級對象,本層級只需完成操做併發送通知,不須要知道下一層級誰來響應通知。

三、雙向綁定

  • Store 能夠經過androidx.lifecycle.LiveData<T>實現 MVVM 架構,通知 View 進行 UI 更新。
  • Store 繼承androidx.lifecycle.ViewModel,在 View 橫豎屏切換時維持數據。

四、訂閱管理綁定生命週期

  • Store 實現androidx.lifecycle.LifecycleObserver,自動關聯 View 生命週期。
  • View、Store 跟隨 View 生命週期自動註冊訂閱、取消訂閱。

五、模塊化中依賴注入實現

核心庫core-arch中使用 Dagger.Android 實現依賴注入,業務模塊僅需建立@Module標註的依賴注入對象生成庫, 無需知道如何實現依賴注入。

六、Application多模塊共存

核心庫core-arch-annotationscore-arch經過註解編譯時生成代碼和反射實現多個業務模塊共存 Application 生命週期方法代理類。

七、單元測試

框架圖.jpg

源碼

開源模塊化解耦框架RxFluxArchitecture,歡迎你們點贊Fork,更歡迎點評指導。

相關文章
相關標籤/搜索