data-structures - 存储库模式与 "smart"业务对象

标签 data-structures architecture repository-pattern

在 .NET 上创建更大规模的企业级应用程序时,我看到两个主要的“思想流派”(Winforms、WPF、ASP.NET)。

有些人使用“存储库模式”,该模式使用知道如何获取、插入、更新和删除对象的存储库。这些对象相当“愚蠢”,因为它们不一定包含大量逻辑 - 例如它们或多或少是数据传输对象。

另一个阵营使用我所说的“智能”业务对象,它们知道如何加载自身,并且它们通常具有 Save()、可能的 Update() 甚至 Delete() 方法。在这里,您确实不需要任何存储库 - 对象本身知道如何加载和保存自己。

大问题是:您使用或更喜欢哪个?为什么?

您是否在所有应用中使用相同的方法,或者您在选择一种方法而不是另一种方法时是否有任何特定标准?如果是这样 - 这些标准是什么?

我并不是想在这里引发一场激烈的争论 - 只是想了解每个人对此的看法以及您的意见是什么,以及为什么您使用一种(或两种)模式而不是另一种模式。

感谢您提供任何建设性意见!

最佳答案

由于单一职责原则,我使用存储库模式。我不希望每个单独的对象都必须知道如何保存、更新、删除自身,而这可以由一个通用存储库来处理

关于data-structures - 存储库模式与 "smart"业务对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/888911/

相关文章:

firebase - 更改 firebase 数据模型(同时生产多个应用程序版本)

design-patterns - 从 SOA 的角度来看,Registry 和 Repository 有什么区别?

entity-framework - 存储库并获取聚合实体/值对象的新值

c# - 工作单元和存储库模式对大型项目是否非常有用?

c - 在 C 中强制无序结构字段

data-structures - 完美的列表结构?

c++ - 这样使用嵌套 vector/multimap/map 可以吗?

c++ - 如何使 std::map 比较以处理多种数据类型?

html - Angular index和app.component.html应该怎么写?

json - 为什么 postman 中显示 "The field is required",即使它可以为空?