关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
3年前关闭。
Improve this question
我需要实现从某个远程数据源检索数据的逻辑。现在我需要决定——我需要哪个概念:Provider、Repository 或 Service。
其实我不太明白这两者之间的巨大差异。是的,我知道存储库是更具体的数据,不应该包含任何业务逻辑。另一方面,提供者除了管理数据外,还可能包含一些业务规则。 Service 除了管理数据外,还可以包含一些业务逻辑。那么Service和Provider有什么区别。
从另一个角度来看,我认为使用服务是更好的方法来表明它是远程访问的抽象。
结论:所有这些方法看起来都很合理,我完全对此感到困惑。如果有人能帮助我,将不胜感激。
最佳答案
存储库和服务不是相互排斥的。事实上,它们经常一起使用。
服务层位于您的领域对象之上,并为业务操作提供粗粒度接口(interface)。它通常描述您的应用程序的用例。服务层使用存储库来获取您的域对象,并在可能的情况下将进一步的执行委托(delegate)给它们。
存储库的作用类似于持久域对象的集合。它提供了使用某些标准查找正确对象的方法。它还提供了保存这些对象的方法。
野外存储库的实现差异很大。存储库可以提供类似的方法
List<Person> findPersonByName(String name)
或更通用的方法与标准对象
List<Person> find(Criteria criteria)
补充阅读:service layer , repository
我不熟悉提供者模式。
关于oop - 比较存储库与提供者与服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10664731/