内容提供者是存储库模式的实现吗?

Repository PatternHieatt and Rob Mee定义为使用类收集类接口访问域对象的域和数据映射层之间的设计模式.

MSDN Repository Pattern

基本上,它将一个或多个I / O设备(云,磁盘,数据库等)抽象成一个常见的集合式界面,您可以在其中使用read, write, seek and delete data.

不过,正如Coursera course教授指出,内容提供商manages and mediates access to a central repository of data to one or more applications

Content Provider

Programming Android年的书中,内容提供商被使用as a Facade for a RESTful Web Service.这种方法最初是在
Virgil Dobjanschi during Google I/O 2010
提出的.

因此,为什么不将它用作存储库模式本身,而不是使用内容提供者access the local SQLite database

enter image description here

这是一个有趣的问题.我认为我的第一个答案是否定的,内容提供者不是存储库模式的实现.

如上所述,存储库模式旨在将业务逻辑(域)与数据层分开.这种方法允许您为业务逻辑创建单元测试(所以域不应该依赖于Android).通过使用内容提供商,您需要在您的域中拥有某种Android对象.

您可以想像一种隐藏Interface接口内容提供者逻辑的方式,但是您将会松动内容提供商允许您执行的许多好东西.

如果您对Android Architecture感兴趣,我建议您查看此Github项目Android Clean Architecture.您会发现一个很好的方法来分离您的演示文稿,域和数据层,域和数据之间的通信是通过使用存储库模式.

希望这将有所帮助!

翻译自:http://stackoverflow.com/questions/43258773/is-content-provider-an-implementation-of-repository-pattern

转载注明原文:内容提供者是存储库模式的实现吗?