- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通常,存储库应该知道我们决定使用哪个数据库的实现细节。
a) 但是,使存储库持久性无知(即不知道使用什么持久性介质来存储数据)的优点/缺点是什么。我能想到的唯一优点是现在可以使用相同的 Repository 实现,无论持久化哪种介质数据
b)假设存储库是持久性无知的,那么存储库接口(interface)及其实现都应该驻留在域程序集中?!
谢谢
最佳答案
好吧,使用存储库模式的全部意义在于将域逻辑与持久性逻辑分开,因此,您可以使用具有不同数据存储的相同域实现。因此,存储库的实现必须在某种程度上依赖于数据库的实现似乎很自然。
a) 我认为主要的缺点是性能。存储库越抽象,您就需要设计和实现更多抽象级别,涵盖更多案例。但是,一个专门的存储库会表现得更好,因为它知道其底层存储的全部功能。
另一个缺点是开发和维护成本。我认为这些缺点超过了具有完全通用结构的任何优点......
b) 对于较小的项目,我的回答是“也许”,但对于所有其他项目,我的回答是“不”。它与持久无知没有任何关系。我一直尝试遵循的最佳实践是关注点分离。如果他们试图做不同的事情,那么就把他们分开。它将使您免于以后的许多噩梦。
任何进一步的想法|想法,我也愿意听他们的:)
关于design-patterns - 使存储库持久性无知的优点/缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846490/
过去几个小时我一直在研究这个,我似乎无法找到它为什么不工作,store_car_stats 函数中的 printf 从我的 argv 打印奇怪的东西,它在 gdb 上运行,但通常会出现段错误.这真的很
我有一个 XML 文件,其中有一个名为 TEXT 的标签 当我尝试使用 android 的 org.xml.sax 解析文件时解析器,不解析整个标签,仅解析前几个字符 这是我的TEXT标签 Sampl
我有一个相当简单的查询,大多数运行速度非常快,在其他极少数情况下最多需要 30 秒。我不知道是什么原因造成的。这是我正在讨论的示例。 mysql> UPDATE matchSessionMembers
在我们的应用程序中,我们有一个 C++ 静态库,我使用 Objective-C++ 来处理它。该 c++ 库利用 rapidjson 解析 XML 数据: try { rapi
我是一名优秀的程序员,十分优秀!