2016-09-07 45 views

回答

2

什么时候应该使用命令对象,何时使用域对象?

域对象是要保留到数据库的对象。命令对象可能是域对象,但不一定是。任何对象都可以使用命令对象。命令对象是让框架为你做一堆工作(数据绑定,依赖注入,验证等)的一种便捷方式。

当你写这样的控制器操作:

class SomeController { 
    def someAction(SomeCommand co) { 
     // your code here... 
    } 
} 

编译器会产生这样的(伪代码,但代表):

class SomeController { 
    def someAction(SomeCommand co) { 
     // your code here... 
    } 

    def someAction() { 
     SomeCommand co = new SomeCommand() 
     bindData co, request 

     // subject co to dependency injection 

     co.validate() 
     someAction(co) 
    } 
} 
+0

另请参阅我的答案在http://计算器.COM /问题/ 23511688 /如何-不-的Grails-传递参数到控制器的方法/ 23517706#23517706 –