首页 \ 问答 \ Content Provider是Repository Pattern的实现吗?(Is Content Provider an implementation of Repository Pattern?)

Content Provider是Repository Pattern的实现吗?(Is Content Provider an implementation of Repository Pattern?)

存储库模式Hieatt和Rob Mee定义为设计模式,它使用类似集合的接口访问域对象,在域和数据映射层之间进行调解

MSDN存储库模式

基本上,它将一个或多个I / O设备(云,磁盘,数据库等)抽象为一个通用的类似集合的接口,您可以在其中读取,写入,查找和删除数据

Fernando Cejas的Android Clean Architecture上 ,应用程序需要的所有数据都来自该层,通过使用存储库模式的存储库实现(接口位于域层中),其策略通过工厂根据不同的数据源选择不同的数据源一定条件下。

内容提供商

然而,正如Coursera课程的 Douglas Schmidt教授指出的那样,内容提供者管理和调解对一个或多个应用程序的数据中央存储库的访问

内容提供商

编程Android手册中 ,内容提供者被用作RESTful Web服务的Facade 。 这种方法最初由Virgil Dobjanschi在Google I / O 2010期间提出。

因此,为了不使用内容提供者访问本地SQLite数据库 ,为什么不使用它作为存储库模式本身呢?

在这里输入图像描述


Repository Pattern is defined by Hieatt and Rob Mee as design pattern that mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.

MSDN Repository Pattern

Basically it abstracts one or more I/O devices (cloud, disk, data base, etc) into a common collection-like interface where you can read, write, seek and delete data.

On Fernando Cejas's Android Clean Architecture, all data needed for the application comes from this layer through a repository implementation (the interface is in the domain layer) that uses a Repository Pattern with a strategy that, through a factory, picks different data sources depending on certain conditions.

Content Provider

However, as pointed out by professor Douglas Schmidt at Coursera course, content provider manages and mediates access to a central repository of data to one or more applications

Content Provider

In the book Programming Android, content providers are used as a Facade for a RESTful Web Service. This approach was initially presented by Virgil Dobjanschi during Google I/O 2010.

Thus, instead of using content providers to access the local SQLite database, why not using it as the repository pattern itself?

enter image description here


原文:https://stackoverflow.com/questions/43258773
更新时间:2023-02-28 20:02

最满意答案

很多同学都想学JAVA 
可是也由于对IT培训学校的不了解
不少同学都选错了学校  后悔不已
其实找学校的时候 要自己多去了解 咨询情况
也不妨加到我们群里来哒  大家一起帮你分析分析
也可以听听更多人的经验之谈   吸取好的意见
群【52·5280·65】

相关问答

更多
  • 要学电脑,你可以去升空教育啊,他们那有学电脑的,很专业,老师都很有经验的。过级没有问题的!
  • 每个人说的话都是站在自己的利益角度去说的 说它好的你会怀疑人家是托 说它不好的对方也有可能是这所学校的竞争对手故意诬陷 所以还是建议你自己亲自看看 而且,你要真想在网上问的话,可以加湖南的IT培训机构讨论群, 群号给你1049⌒⌒⌒⌒加 50799
  • 每个人说的话都是站在自己的利益角度去说的 说它好的你会怀疑人家是托 说它不好的对方也有可能是这所学校的竞争对手故意诬陷 所以还是建议你自己亲自看看 而且,你要真想在网上问的话,可以加湖南的java培训机构讨论群, 群号给你(9159~~~~加~~~2093)
  • 你好:计算机软件行业,有许多种,有软件开发,软件维护,软件应用等等,一般来说软件开发待遇最高,但是也是最难的一种,其次是软件应用和维护,一般只要你认真做下去的话没有待遇如何这个问题。 本人学的是电脑软件开发,学好了前景还是很不错的了。 只能说对长沙这边的情况比较了解了,有什么疑问可以加我QQ58-36-12-4-36 希望可以帮助到你,望采纳。
  • 长沙太多学校搞JAVA培训了,有的学的很杂。有点很贵,但是最重要的还是适合自己咯! 我最近也在找学校时加的一个群◥◥(9159~~~~加~~~2093)◤◤ 基本上都是湖南的讨论去什么学校比较适合自己的 你可以加下看看哪个学校好些适合你一些
  • 目前java语音是最流行也是使用最广泛的语音,前端后端都能写,当然市场的需求也是很大的,现在学习还来得急, 可以找些教程看看,推荐老罗,饼干的视频不错的,对新人很有帮助。
  • 首先,程序员还是不错的行业,不过竞争也是激烈的。 首先你应该考虑如下几个问题: 1、你真的喜欢Java吗?你愿意为她付出汗水吗? 2、Java还会流行多久?你打算干多久? 3、培训Java你打算投资多少?多长时间可以回本?即使你不缺钱也要做投资与收益的预期。 最后的建议: 只要你知道去哪里,全世界都会为你让步的!事在人为! 关键在于毅力、目标和方法! 一旦选择就要全力以赴,努力做到最好。 你要知道外面的竞争是很残酷的!技术这东西你玩虚的是不行的! 我是湖南长沙的,学习的也是JAVA,还不错吧 你有什么疑问可 ...
  • 呵。。个有觉得学JAVA还不如学.net吧,,学的人少些,容易的工作些。。长沙指数教育就不错。
  • 很多同学都想学JAVA 可是也由于对IT培训学校的不了解 不少同学都选错了学校 后悔不已 其实找学校的时候 要自己多去了解 咨询情况 也不妨加到我们群里来哒 大家一起帮你分析分析 也可以听听更多人的经验之谈 吸取好的意见 群【52·5280·65】

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。