我什么时候应该考虑在Grails中实施服务?

时间:2011-12-15 07:41:01

标签: grails groovy

我是Grails和Web开发的新手。我开始在计划管理网站上做一个项目。我遇到了Grails提供的Service概念。我理解这个概念,但我仍然对何时使用服务感到困惑。

例如,我需要实现search模块,其中manager可以搜索user以找到他的schedules。在这种情况下,将它实现为控制器或服务是好的吗?

所以,

  • 我应该何时何地使用Service

3 个答案:

答案 0 :(得分:6)

添加到Grooveek的答案;

使用服务来保持控制器的美观和清洁也很不错。

因此,视图只是将数据呈现到屏幕,域对象存储状态,控制器在应用程序周围路由用户,服务执行工作。

答案 1 :(得分:3)

我没有足够的声誉评论答案或投票,所以我必须提供一个真正应该是评论的答案。反正...

+1 @tim_yates回答。一定要爱瘦控制器。我将添加到控制器描述中的两件事:

  1. 在点击服务之前从浏览器翻译参数(例如日期,数字等)
  2. 将从服务返回的数据转换为可供视图使用的内容。
  3. 对我而言,理想情况下,服务永远不会处理将String参数转换为其固有类型。或者处理构建要在视图上显示的模型。

答案 2 :(得分:2)

我应该使用Service的内容和位置?

当您希望控制器执行某些可能被其他控制器重用的操作时 在我们的应用程序中,我们正在进行功能性的服务分离。我们有一个CorePersistanceService,它提供了创建,删除,更新和操作Core Domain Classes(我们的核心)的方法。

我认为持久性服务是在整个Grails代码中重用GORM代码的好方法。你可以在域类中创建方法,但我不喜欢这样,我认为这种方法不太可能。

我们有一个用于PDF创建的PDFService类,一个连接到Solr的SolrService,一个统计服务,收集我们收集数据统计数据的所有方法

Grails中的服务是一种围绕特定功能主题收集方法的方式,以便能够在控制器中重用它们(我忘了提到我们的SecurityService,这是一个非常好的跨应用程序示例)