gpt4 book ai didi

design-patterns - 使存储库持久性无知的优点/缺点是什么?

转载 作者:行者123 更新时间:2023-12-04 07:04:53 26 4
gpt4 key购买 nike

通常,存储库应该知道我们决定使用哪个数据库的实现细节。

a) 但是,使存储库持久性无知(即不知道使用什么持久性介质来存储数据)的优点/缺点是什么。我能想到的唯一优点是现在可以使用相同的 Repository 实现,无论持久化哪种介质数据

b)假设存储库是持久性无知的,那么存储库接口(interface)及其实现都应该驻留在域程序集中?!

谢谢

最佳答案

好吧,使用存储库模式的全部意义在于将域逻辑与持久性逻辑分开,因此,您可以使用具有不同数据存储的相同域实现。因此,存储库的实现必须在某种程度上依赖于数据库的实现似乎很自然。

a) 我认为主要的缺点是性能。存储库越抽象,您就需要设计和实现更多抽象级别,涵盖更多案例。但是,一个专门的存储库会表现得更好,因为它知道其底层存储的全部功能。

另一个缺点是开发和维护成本。我认为这些缺点超过了具有完全通用结构的任何优点......

b) 对于较小的项目,我的回答是“也许”,但对于所有其他项目,我的回答是“不”。它与持久无知没有任何关系。我一直尝试遵循的最佳实践是关注点分离。如果他们试图做不同的事情,那么就把他们分开。它将使您免于以后的许多噩梦。

任何进一步的想法|想法,我也愿意听他们的:)

关于design-patterns - 使存储库持久性无知的优点/缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com