gpt4 book ai didi

model-view-controller - 数据库和模型之间是否应该有一个抽象层?

转载 作者:行者123 更新时间:2023-12-04 04:32:21 25 4
gpt4 key购买 nike

我经常看到人们在 MVC 环境中工作时使用对象关系映射器 (ORM) 来执行 SQL 操作。但如果我真的有复杂的查询,我想自己编写整个查询。这种情况的最佳做法是什么?

  1. 在模型和具有复杂查询的数据库之间有一个抽象层
  2. 仍然使用模型创建处理查询的特定方法

或者还有其他更好的方法吗?请告诉我:)

最佳答案

考虑 Single Responsibility Principle .具体来说,问题是……

“如果我将数据访问逻辑放入我的模型中,当我需要更改某些内容时这意味着什么?”

任何时候您需要更改业务逻辑时,您也在更改维护数据访问逻辑的对象。所以数据访问逻辑也需要重新测试。相反,任何时候您需要更改数据访问逻辑时,您也在更改维护业务逻辑的对象。所以业务逻辑也需要重新测试。

随着逻辑的扩展,这会很快变得更加困难。

单一职责原则背后的想法是分离不同角色的依赖关系,这些角色可以对应用程序进行更改。 (请记住,“角色”并不与“人”一对一对应。一个人可能有多个角色,但将这些角色分开仍然很重要。)这是一个更简单的支持问题。如果您想对数据库查询进行更改(例如,出于性能原因),但不应对系统中的任何其他内容产生任何可见影响,则没有理由更改包含业务逻辑的对象。

关于model-view-controller - 数据库和模型之间是否应该有一个抽象层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383464/

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