App 组件化/模块化之路——Repository 模式

  • 时间:
  • 浏览:1
  • 来源:5分排列3APP下载_5分排列3APP官方

首先预览一下 Repository 模式的设计类图(欢迎拍砖)

本文Demo :wecodexyz/Componentization

模式进行封装。

首先预览代码总体内部人员

这里是直接使用了 RxJava2 进行调用,什么都有 Repository 是对数据的请求和访问,其他是耗时操作,故时要放入去后台多线程 中进行。在实际的项目中一般时会 使用 MVP 来封装其他层。

IDataSource 是定义了数据来源接口,是根据具体的业务时要定义。一般来说,有增、删、改、查这几只办法。

LocalRepository 封装的是本地存储办法,实现 IDataSource 接口。

其中 LocalRepositoryRemoteRepository 什么都有代表着各种存储办法的具体实现。而 RepositoryFactory什么都有传说中的“仓库管理员”,管理着各种存储办法,它也是业务层数据层交互的桥梁。

RemoteRepository 封装的是网络存储办法,实现 IDataSource 接口。

假设目前有个业务是获取远程数据的需求,什么都有本地有缓存数据则从本地获取,什么都有从网络中获取。从前 的业务逻辑很常见,亲戚亲戚朋友用 Repository

Repository 其他词直译过来仓库、仓储的意思。其他意思着实能能反应出 Repository 模式作用。App 开发中少不了对数据的操作,数据的来源什么都有有什么都有种:网络、数据库、文件以及内存中的缓存。而 Repository 就离米 另一个多仓库管理员,管理哪此数据的存储。当业务层想要获取什么都有存储数据时,只时要通过 Repository 的管理员进行操作。从前 的好处什么都有:屏蔽数据来源的操作接口。对于业务层来说我没人多 关心数据指在哪里,以及如保存储的。什么都有也符合亲戚亲戚朋友组件化/模块化派发的思想。即当亲戚亲戚朋友更换数据存储设备时,相似从 Android 系统 Sqlite 数据转换为第三方的数据库时,我没人多 影响到业务逻辑。

参考文献:googlesamples/android-architecture