放弃MVP-Android Flux 框架 RxFlux2 (一)介绍

简介

Github :

你的 Star 是我坚持的动力 ✊

首先,说放弃MVP,肯定是夸大其词了。MVP很好,只是个人不习惯那么多的回调,更喜欢Flux这种单向数据流模式。希望大家能多多点赞,多多拍砖!

RxFlux2 是在 RxFlux 基础上,使用 RxJava2Dagger2 实现 Flux模式 的轻量级框架。
RxJava2+Retrofit2+Dagger2

Why

减少不同层级之间的耦合:

每一层级负责接收数据、发出数据,不关心谁来响应数据变化。RxFlux2 封装的 Dispatcher 来通知谁(View,Store)来响应数据变化。

  1. View 只负责用户交互并调用 ActionCreator 中的方法创建RxAction,不关心 RxAction 如何执行(调用接口,操作数据库)。

  2. ActionCreator 负责创建 RxAction,操作 RxAction。
    操作正确时,发送封装了result data 的 RxAction,不关心哪个 Store 来接收。
    操作失败时,发送 RxError,不关心哪个 View 来接收。

  3. Store 负责接收 RxAction,处理 RxAction 携带的 result data,发送 RxStoreChange,不关心哪个 View 来接收。

减少业务模块之间的耦合(View 层级):

  1. Activity 和 Fragment 解耦,Fragment 与 Activity 之间互不调用。

  2. Fragment 之间完全解耦,不同 Fragment 之间互不调用。

  3. Activity 主要作为 Fragment 容器,负责响应 Fragment 发送的RxAction(经过Store转为RxStoreChange),控制 Fragment 之间的跳转。

  4. 不在前端显示的 Activity 和 Fragment 对应的 Store 不会响应 RxAction。

  5. 不在前端显示的 Activity 和 Fragment 不会响应 RxStoreChange。

RxFlux2 与 RxFlux 的区别

  1. 使用 RxJava2 替换 RxJava1,修改 RxBus 实现方式。

  2. 修改 RxAction,向创建的 RxAction 实例中添加 key-value 时,当 value 为空时,当前 key-value 不添加到 RxAction 实例中。

  3. 接口 RxViewDispatch 中删除 onRxViewRegistered() 方法和 onRxViewUnRegistered() 方法。

  4. views 中 activity 由 RxFlux 类根据 activity 生命周期来负责注册 store、注册 view、解除 view 注册、解除 store 注册。

  5. 其他 views (fragment、dialogfragment,service)由自己负责注册 store、注册 view、解除 view 注册、解除 store 注册,activity 不再负责其中的 fragments的注册解除操作。views 中的相关操作已被集成到 base 类中。

RxFlux2 架构图

使用 RxFlux2 最好了解 RxJava2 和 Flux,记住 Flux 的架构图能更好的理解 RxFlux2。

Flux 架构图
RxFlux2 架构图

RxFlux2 Dagger2及Store生命周期说明

  1. RxFlux2 使用 Dagger2 将 store、actioncreator及其他需要的类注入到用到的地方,主要在views中用到。
  2. views 包括activitys、fragments、dialogfragments、services。若是需要接收store发出的RxStoreChange,需要实现 RxViewDispatch 接口。在 base 类中已实现该接口,只需要继承 base 类即可。
  3. app 中有一个 AppStore,用来接收全局性的 RxAction,发送全局性的 RxStoreChange。AppStore 跟随 Application 生命周期。
  4. 一个 activity 对应一个 ActivityStore(名字随activity),该 activity 及其管理的 fragments 共享这个 ActivityStore。ActivityStore 跟随 activity 生命周期。
  5. 某些特殊的 fragment 对应独立的 FragmentStore,该FragmentStore 跟随 fragment 生命周期。


    RxFlux2 框架图

下一篇 放弃MVP-Android Flux 框架 RxFlux2 (二)导入

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容