【发布时间】:2016-12-10 20:21:48
【问题描述】:
我的域类上有一个静态方法,想把域类定义中的所有业务逻辑都放到服务中,但是我不能在域类静态方法中调用服务,因为服务本身就是在实例而不是域类上定义。
最好的解决办法是什么?
例如
class Foo {
def fooService
Integer count =0
String name
static void updateFoo(String name) {
def foo = FindByName(name)
fooService.beforeUpdateProcess(foo) //fooService unavailable here
foo.count+=1
foo.save()
}
}
【问题讨论】:
-
我认为 beforeUpdateProcess 本身应该是 fooService 的静态方法,在这种情况下,解决方案就是 FooService.beforeUpdateProcess(foo)。这是正确的处理方式吗?
-
我建议一般不要使用静态方法,尤其是在域或服务中。
标签: grails grails-domain-class