Grails 使用域对象或命令对象封装视图

Grails 使用域对象或命令对象封装视图,grails,Grails,我应该何时使用命令对象,何时使用域对象 每种方案的优缺点是什么 我应该何时使用命令对象,何时使用域对象 域对象是要持久化到数据库的对象。命令对象可以是域对象,但不一定是域对象。任何对象都可以用作命令对象。命令对象是让框架为您做大量工作(数据绑定、依赖项注入、验证等)的便捷方式 当您编写如下控制器操作时: class SomeController { def someAction(SomeCommand co) { // your code here... } }

我应该何时使用命令对象,何时使用域对象

每种方案的优缺点是什么

我应该何时使用命令对象,何时使用域对象

域对象是要持久化到数据库的对象。命令对象可以是域对象,但不一定是域对象。任何对象都可以用作命令对象。命令对象是让框架为您做大量工作(数据绑定、依赖项注入、验证等)的便捷方式

当您编写如下控制器操作时:

class SomeController {
    def someAction(SomeCommand co) {
        // your code here...
    }
}
编译器将生成如下内容(伪代码,但具有代表性):

我应该何时使用命令对象,何时使用域对象

域对象是要持久化到数据库的对象。命令对象可以是域对象,但不一定是域对象。任何对象都可以用作命令对象。命令对象是让框架为您做大量工作(数据绑定、依赖项注入、验证等)的便捷方式

当您编写如下控制器操作时:

class SomeController {
    def someAction(SomeCommand co) {
        // your code here...
    }
}
编译器将生成如下内容(伪代码,但具有代表性):

请参阅我的答案也请参阅我的答案