![]() |
1
15
我就这样来来回回的。在Grails之前,我对贫乏的域类和将所有内容放在helpers中没有任何问题。我经常上贫血课的主要原因是验证。在类内部验证可空性、长度等很简单,但唯一性需要数据库检查,而这与域类(在非Grails应用程序中)无关,因此我将其移动到助手。现在我在两个地方进行了验证,因此我将在helper中合并,并将剩下一个仅数据的类。 但是Grails通过将GORM方法连接到域类中来代替DAOs,并且通过将验证放在域类中来代替对验证器的需要。因此,在决定哪些业务逻辑应该放在域类中,哪些应该放在服务或其他帮助程序中时,这就产生了问题—服务为将可能需要的业务逻辑放在域类方法或验证程序中提供了一个很好的位置。
像这样的耦合确实使得将应用程序分离为组件或插件以便重用变得更加困难,但是使用“def paymentService”声明服务会有很大帮助,因为您没有耦合到包名称或实现。 |
![]() |
2
3
我不认为域/模型类应该调用服务。应该是相反的。 服务可以编排其他服务来实现用例。我认为这是正确的方法。 |
![]() |
3
3
我只发表个人意见。由于grails支持将服务自动注入到域类中(不同于将服务注入到标准groovy类中,而标准groovy类必须自己配置),因此我猜它的目的是以这种方式使用,因此这并不是一个坏的做法。 它还使代码更易于阅读,例如myDomainInstance.someUsefulMethod方法(),比someService.somesusefulmethod方法(myDomainInstance)”(希望你知道我的意思)。 |
![]() |
4
0
在像这个例子这样的情况下,走一条路或另一条路怎么样:要么把paymentService.capturePurchase付款服务()将代码放在Purchase类中,或者您可以将所有逻辑放在服务中? |
![]() |
Rado · 无法捕获Grails 3中的数据库异常 7 年前 |
![]() |
user1452701 · 是否可以创建自定义条件查询,如 7 年前 |
![]() |
Magat Law · grails表单中的操作不起作用 7 年前 |
![]() |
ziftech · Grails REST安全性-将用户id添加到令牌 7 年前 |
|
Bill Hutchinson · Grails 3限制索引视图中的列 7 年前 |
![]() |
Trebla · Grails动态“inList” 7 年前 |