Android架构建设之 Data Repository(数据统一输出口)建设

原创 2018年04月17日 21:17:36

一、 Data Repository意义
1、 据了解物流项目也有几年历史,迭代更新了好几个版本,有必要进行一些技术沉淀,架构沉淀。
2、 推进基础组件建设落地。
3、 可能面临一些解耦等各种难题,长痛不如短痛,颗粒度可以逐渐从粗到细。

二、 没做组件化之前的是这样的(物流项目),暂时不讨论业务层的架构设计模式(目前是mvc)
这里写图片描述

问题分析:
优点:
1、 因为各种数据提供者和主工程同属于一个空间内,方便及时即用。
2、 只要维护一个工程即可。
缺点:
1、业务和各种数据提供者严重柔和在一起,业务层要时刻关注各种数据提供者的内在变化,一旦发生变化需及时对应大量调整。比如网络框架,android的网络框架一直在不断演变。
2、开发者使用各种数据源不统一,人员更替接手项目困难重重,维护成本及高。
3、开辟新项目时,移植成本相当高,比如,我们要构建委托项目时,各种数据源需要一个个拷贝,还不排除数据源内部有啥其它依赖,相当痛苦,新开一个项目时还好,开辟多个新项目时,恐怖程度,大家可想而知。

这里写图片描述

三、网络组件化之后项目是这样的
这里写图片描述

问题分析:
优点:
1、 网络已组件化,主项目中的网络请求的大片代码已撤离到了网络组件中,降低了业务代码与网络处理相关代码的耦合度,这个时候,职责划分思想已浮出水面,业务和网络层面职责不断清晰。
缺点:
2、 虽然已把网络相关的大部分code移植到网络组件中,不幸的是主工程中RxNet依然隶属于第三网络库,仍然潜在着网络库迭代带来的巨大工作量的痛点。
3、 其它数据源提供者仍然耦合在主工程中,新项目来临时依然难逃其它各种数据源相关的各种文件的移植工作量
这里写图片描述

四、提供DataRepository之后项目是这样的
这里写图片描述
问题分析:
缺点:
1、需要维护两个工程,而且需要投入大量成本把DataRepository不断完善健壮。

优点:
1、 把各种数据源全部集中起来,统一管理,对外暴露相关action,业务层你需要哪种数据源,我就给你什么,业务层不需要关心我在哪儿,我是怎么实现的。我告诉你怎么用就行了。
2、 部分单纯只与数据相关的逻辑可以放到DataRepository,向 上层 屏蔽数据处理细节,就不必关心 Model 层传递过来的数据到底是来至网络还是来至数据库还是来至本地文件等等。
3、 我们引入了 RxJava,但是只有网络层中的 Retrofit 能返回 Observable 对象,其他模块都是返回的还是一些非 Observable 的 Java 对象,为了能在整个 Presenter 层中都体验 RxJava 带来的美妙之处,因此可以通过 Data Repository 做一层转换;

4、 主项目代码不那么混乱了,业务层和数据源职责清清楚楚。新人投入开发时,不需要东找西找数据提供者,简单告诉它如何使用即可。可以把DataRepository做的更加灵活一些,能达到分发角色最好。
5、 那么现在我们要构建委托项目啦,其实这时候我们就没那么痛苦了,只要轻松依赖一下Model Layer即可,项目就拥有了使用各种数据源的所有功能的能力,其实我想
表达的初衷是,实现一个同样的功能,以重用的方式去实现,而非搬运代码的方式。

这里写图片描述
五、 实现方案
实现方式可以根据各平台的各自特性个性化实现

Android已经使用策略模式+简单工厂模式+代理模式+泛型实现

大数据平台的建设思考——数据汇聚

大数据平台的建设思考(一) 常规大数据建设、数据中心建设,会经过以下阶段:数据汇聚、清洗整合、融合、数据融合,数据输出给各个大数据应用使用。 将整个数据流比作炒一道美味的菜肴,那么对应关系: ...
  • caomuqiu
  • caomuqiu
  • 2018-02-04 22:20:08
  • 391

浙江省政务服务网云平台建设-邓世友(政务云 云平台)

2014年6月25日,全国首个省、市、县一体化的网上政务服务平台——浙江政务服务网正式开通运行,成为政府部门实施“阳光政务”、实现职能变革的重要基础。浙江省政务云平台部署采用了H3Cloud云计算解决...
  • H3C_CSDN
  • H3C_CSDN
  • 2015-03-31 10:00:21
  • 11096

为什么许多企业的IT规划需要深化?

描述: IT架构规划与IT规划之间关系图图片: 中国企业多年信息化实践,大多数企业已经认识到IT规划在企业信息化过程中的重要作用。通过IT规划可以在企业的各个层面达成IT系统建设的目标、IT投资、以...
  • xibusj
  • xibusj
  • 2007-03-15 11:23:00
  • 698

XX银行数据中心建设方案

引言 摘要:本文简单介绍EMC SRDF技术,重点阐述了银行如何利用该技术进行新旧数据中心搬迁、灾难备份的系统设计,详细介绍了如何按照系统设计要求逐步将旧数据中心安全地、迅速地搬迁到新的数据中心,并...
  • fuzhouxufeng
  • fuzhouxufeng
  • 2016-12-03 22:45:03
  • 1371

用户属性标签系统建设思路以及结构

一:用户属性标签系统建设
  • lhq9808
  • lhq9808
  • 2014-11-19 23:11:37
  • 671

信息化领导小组关于我国电子政务建设指导意见

国家信息化办公室   国家信息化领导小组决定,把电子政务建设作为今后一个时期我国信息化工作的重点,政府先行,带动国民经济和社会发展信息化。落实这一决定,对于应对加入世界贸易组织后的挑战,加快政府职能转...
  • CSDN_document
  • CSDN_document
  • 2004-09-14 16:12:00
  • 2883

【互联网保险-ECIF/CRM】客户统一视图存在意义及建设思路

从一个场景说起:比如依照银行传统的分析,某位持卡4年的信用卡持卡人,月均刷卡次数以及消费稳定,极少打客服电话,应该是一位满意度较高流失风险较低的客户。但该客户却经常在社交网站、微博和微信上抱怨该行信用...
  • Crazy_xi_Factor
  • Crazy_xi_Factor
  • 2018-01-12 10:58:57
  • 155

数据资源规划中统一身份认证平台设计与实现

  • 2013年12月15日 15:25
  • 406KB
  • 下载

统一账户平台技术方案

  • 2013年12月02日 15:56
  • 2.86MB
  • 下载

如何进行安全架构规划

【数据安全】一直是大数据文摘想做的专题,诚邀此领域专家一起筹划。大数据文摘不仅能给读者带来价值,也愿意为有能力、愿分享的朋友提供交流平台,感兴趣此话题的朋友请给文摘后台留言,谢谢! ...
  • miller_lover
  • miller_lover
  • 2014-10-23 10:47:09
  • 2379
收藏助手
不良信息举报
您举报文章:Android架构建设之 Data Repository(数据统一输出口)建设
举报原因:
原因补充:

(最多只允许输入30个字)