模块化解耦框架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,更欢迎点评指导。

相关文章
相关标签/搜索