0

为什么约定在控制器规范中存根数据库调用?我主要研究为什么(或为什么不)在控制器中存根数据库调用是好的。我的观点是,在某些情况下,如果它是一个简单的查询(即通过 id 查找),那么它是可以的,但是当你进入更复杂的查询时它是有用的。我还可以争辩说您不应该在控制器中进行复杂的查询,并且应该在模型中完成任何类似的逻辑。

让我知道您对此的想法或感受,谢谢。

4

3 回答 3

0

数据库调用在控制器中没有位置。表示层(控制器、视图、模板等)甚至不应该知道存在任何类型的存储(无论是 SQL 数据库、远程 REST API 还是一些神奇的文本文件)。数据库交互应该发生在模型层,它由单独的实例组执行——类似于数据映射器

基本上,您的 MVC 已损坏。

于 2013-06-25T08:02:29.747 回答
0

我喜欢单独放置我的数据库调用。无论查询多么简单或复杂,我都将数据库函数放在一个单独的类中。

  1. 它给了我一个复杂的设计和一个集中的逻辑。
  2. 我可以轻松地重用任何控制器中的功能。

基本上,我模拟存储过程。我一直在我上一个和当前的项目中练习这个,我对此有积极的反馈。

于 2013-06-25T02:33:23.767 回答
0

存根对于模拟集成点特别有用,以便编写没有外部依赖的纯单元测试。这意味着它的用处实际上是基于查询的复杂性,而是作为一种抽象依赖关系的方法

于 2013-06-25T01:41:12.420 回答