Java 如何处理MVC设计模式中的附加方法

Java 如何处理MVC设计模式中的附加方法,java,laravel,oop,design-patterns,model-view-controller,Java,Laravel,Oop,Design Patterns,Model View Controller,当我们使用MVC模式开发时,恰好需要有额外的方法来实现模型上的基本操作 例如,一个agregate getter返回持久性基础上的用户记录总数 int getUsersCount(); 把这些方法放在哪里最好?在模型中?在控制器中 特定SDK/语言之间是否存在差异 爪哇EE 安卓 拉维尔 香草PHP 谢谢。我找到了这篇讨论它的文章: 概述基本上解释了在实现MVC设计模式的方式上有两大不同 第一种方法是将方法集中在与模型相关的控制器类中,就像本例中的聚合getter一样 例如,在安卓系统中

当我们使用MVC模式开发时,恰好需要有额外的方法来实现模型上的基本操作

例如,一个agregate getter返回持久性基础上的用户记录总数

int getUsersCount();
把这些方法放在哪里最好?在模型中?在控制器中

特定SDK/语言之间是否存在差异

  • 爪哇EE
  • 安卓
  • 拉维尔
  • 香草PHP

谢谢。

我找到了这篇讨论它的文章:

概述基本上解释了在实现MVC设计模式的方式上有两大不同

第一种方法是将方法集中在与模型相关的控制器类中,就像本例中的聚合getter一样

例如,在安卓系统中,当我们在本地或远程数据库中持久化模型,或者我们必须序列化它,或者对它进行马歇尔处理时,我们倾向于创建那种ModelController类,并使用干净的POJO模型创建一个贫乏的MVC模式

class User extends MySuperModel{
    int id;
    String username;
    //getters and setters
}

class UserController{
    User getUserById(int id);
    int getUsersCount();
}
另一种方式是集中模型类本身的所有方法,例如在Laravel中(其中控制器需要主要控制视图的后期布线和预渲染,但不倾向于使用其他方法,也不容易实例化。在这种情况下,我们有一个受控域MVC,其他与模型相关的方法应该在模型类本身中

class User extends Eloquent\Model{
    protected $fillable = ['id', 'username']
    function getUserById($id);
    function getUsersCount();
}

无论您将任何函数放在何处,这些函数都将在底层数据库上执行查询。