2

根据我的阅读,大多数人要么将命令对象放在控制器中(我不喜欢它),要么将它们放在 src/groovy 文件夹中的某个位置。

然而,我喜欢 Grails 如何为控制器、域、服务等提供特定的文件夹,并且认为简单地为命令对象创建一个新的源文件夹会很棒。/grails-app/commands 或者 /src/commands。以这种方式布局将有助于鼓励使用命令对象。

我有点担心这样做可能会破坏一些依赖于特定项目结构约定的 grails 魔法。在运行了一些快速测试之后,我确实验证了数据绑定和域约束导入似乎仍然可以正常工作。

对这种方法有任何想法或反对意见吗?

4

1 回答 1

6

与域类、服务、标记库等顶级 Grails 工件不同,该框架对命令对象类没有做任何特殊的事情。一个例外是,如果它们是在使用类作为命令对象的控制器的控制器源文件中定义的,在这种情况下,编译器将自动装配可验证的东西,而不必使用 Validateable 注释标记类。如果您在自己的源文件中定义命令对象类,那么如果您希望事物可验证(并非所有命令对象都需要可验证),则需要 Validateable 注释。鉴于此,我认为有一个特殊的地方来定义这些类源文件没有任何好处。如果他们不是,这是正常的事情

命令对象类在 Grails 中几乎是一种特殊的东西,但实际上并非如此。您可以使用任何东西作为控制器操作的参数。如果有某种原因,您可以使用 Log4J 提供的类作为命令对象。IMO,有一个特殊的地方来定义它们是不合理的。

我希望这会有所帮助。

于 2014-05-15T22:23:50.057 回答