在grails控制器中使用私有字段

时间:2014-05-01 20:22:17

标签: grails

我知道grails中的service默认为单身。

在控制器/服务中使用私有字段是不好的做法吗?谁能解释一下,为什么?

1 个答案:

答案 0 :(得分:3)

默认情况下,控制器不是单例。它们是为每个请求创建的。默认情况下,服务是单身人士。在服务中使用私有字段并不错。服务具有私有字段以在运行时保持配置状态是相当普遍的。

我怀疑您关心的是使用私有字段作为在服务中存储特定请求的状态的方法。考虑到服务可能有N个请求正在服务,这显然是不好的。只要您从应用程序的角度使用私有字段来控制服务而不是请求透视图就可以了。

修改(更多信息) 如上所述,服务可以并且经常有私人成员。但是,您绝不应将这些用作存储有关当前正在处理的请求的信息的方法。显然,因为这是一个会导致交错问题的单例。仅使用私有成员来存储所有请求中可见的信息。通常,这些将是服务本身的配置设置。

最好使您的服务在他们正在处理的请求方面无状态。您需要的任何状态都应该封装在Service方法的参数或输入/输出中。服务应该根据数据采取行动,而不是相反。

相关问题