1

我是 grails 的新手。我在当前项目的代码库中注意到的一件事是域类和控制器类共享同一个包。所以,你有这样的事情:

grails-app/controllers/foo/BarController.groovy
grails-app/domain/foo/Bar.groovy

那么,这是一种常见的做法吗?这有什么好处和坏处?非常感谢。

4

2 回答 2

4

我认为对域对象和控制器使用相同的包是可以的。

有一种称为按功能打包的做法,它认为按类的类型或它们所在的层对类进行分组不如将有助于实现相同功能的事物分组在一起有效。当我处理按层打包的项目时,我会经常来回寻找,按功能分组会减少这种情况。

通常域对象几乎没有关于它们的私有信息。无论如何,Groovy 类中的隐私也不存在。

于 2013-09-13T18:56:43.057 回答
3

这就是 Grails 中“约定”优于“配置”的方式。这是一种常见的做法。我没有发现以这种方式使用它的缺点。

通常,当您create-domain-class甚至create-controller测试分别添加到与域类/控制器相同的包中时。

我可以引用的最佳约定示例是当您使用

grails generate-all yourPackage.Domain

偶然发现了一篇与 Grails 相关的类似帖子,其中解释了 Nathan 提到的按功能方面的包。希望有帮助。

于 2013-09-13T18:52:33.480 回答