在MVC方法中,我应该将模型函数分开,还是尽可能地组合?

时间:2010-01-18 23:46:17

标签: php model

您是否应该分离模型函数,即使它们检索数据字段?

假设我有一个文章模型从数据库中获取文章。

我有一个函数getUserArticles($id),它可以获取用户文章。我有一个函数getAllArticles($offset, $limit),它获取文章列表。

我应该将两个功能彼此分开,还是以某种方式将它们组合起来。

我问的原因是因为如果我要更改,添加或删除查询中的字段,我将不得不在每个函数中进行更改。因此,如果我改变主意并决定不再为每篇文章显示time_added,我将不得不从每个函数中删除它。

2 个答案:

答案 0 :(得分:1)

最好向API的用户公开两个不同的函数,但如果你认为那样会有更好的代码重用,你可以在内部使用相同的代码。

例如:您将定义一个通用的getArticles(仅在内部使用)

   articles getArticles($userId, $offset, $limit) {
      // do searching while handling the different cases if $userId is set or not and the same for the offsets
    }

然后你定义你的曝光函数

   articles getUserArticles($id){
     return getArticles($id, -1,-1);
   }

  articles getAllArticles($offset, $limit) {
    return getArticles(-1, $offset, $limit);
  }

注意:只有在您认为两个功能之间存在通用代码时才执行此操作。如果没有公共代码,那么将它们分开,不需要我建议的通用getArticles函数。

我不知道上面是否是有效的PHP代码,但我认为这个想法很清楚。

答案 1 :(得分:0)

将它们分开。它们在逻辑上是截然不同的。如果你尝试合并它们,你最终会得到具有众多参数和复杂内部结构的函数。保持简单,但不简单。拥有这些较小的,不言自明的方法可以让你的生活变得更轻松。