oop - 比较存储库与提供者与服务

标签 oop design-patterns architecture

关闭。这个问题需要更多 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/

相关文章:

oop - 在Rust中设计UI元素树结构

design-patterns - 命令模式和适配器模式之间的区别

design-patterns - 设计问题使用哪种模式

java - 如何使用Java访问另一个类的私有(private)字段中的私有(private)字段

python - 将方法从文件导入到类中

javascript - Function、Array 和 Object 构造函数的 length 属性是什么?

java - 在运行时访问对象!

wcf - 在 SOA 应用程序中使用 DTO 的最佳方式是什么?

asp.net-mvc - 将 "domain services"放在域模型项目中的位置

c# - 如何避免复杂屏幕上的数据绑定(bind)/事件 hell ?