Java 如何处理MVC设计模式中的附加方法
当我们使用MVC模式开发时,恰好需要有额外的方法来实现模型上的基本操作 例如,一个agregate getter返回持久性基础上的用户记录总数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一样 例如,在安卓系统中
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();
}
无论您将任何函数放在何处,这些函数都将在底层数据库上执行查询。