Когда я должен рассмотреть возможность внедрения Сервиса в Grails? - PullRequest
2 голосов
/ 15 декабря 2011

Я новичок в Grails и веб-разработке.Я начал делать проект на веб-сайте управления расписанием.Я столкнулся с концепцией Service, которая предоставляется Grails.Я понял концепцию, но все еще не понимаю, когда пользоваться услугами.

Например, мне нужно реализовать модуль search, где manager может искать user, чтобы найти его schedules.В этом случае будет хорошо реализовать его как контроллер или как службу?

Итак,

  • Когда и где я должен использовать Service?

Ответы [ 3 ]

6 голосов
/ 15 декабря 2011

Чтобы добавить к ответу Grooveek;

Также приятно использовать Службы для поддержания чистоты и чистоты ваших контроллеров.

Так что виды просто отображают данные на экране, состояние хранилища объектов домена,Контроллеры направляют пользователя вокруг приложения, а службы выполняют эту работу.

3 голосов
/ 15 декабря 2011

У меня недостаточно репутации, чтобы комментировать ответ или голосовать, поэтому я должен предоставить ответ, который действительно должен быть комментарием. В любом случае ...

+ 1 к ответу @tim_yates. Должен любить тонких контроллеров. 2 вещи, которые я бы добавил к описанию контроллера:

  1. Будет означать перевод параметров из браузера перед обращением к услуге (например, дата, номер и т. Д.)
  2. Будет означать перевод данных, возвращаемых из служб, во что-то, пригодное для просмотра.

Для меня, в идеале, сервисы никогда не будут иметь дело с переводом параметра String в его собственный тип. Или займитесь построением модели, которая будет отображаться на виде.

2 голосов
/ 15 декабря 2011

Что и где я должен использовать Service?

Когда вы хотите, чтобы ваш контроллер делал что-то, что может быть повторно использовано другими контроллерами В нашем приложении мы выполняем функциональное разделение услуг.У нас есть CorePersistanceService, который предоставляет метод для создания, удаления, обновления и управления классами базовых доменов (для нас это ядро).

Я думаю, что службы поддержки являются хорошим способом повторного использования кода GORM в коде Grails.Вы можете создать метод в классах предметной области, но мне это не нравится, мне кажется, что он менее удобен.

У нас есть класс PDFService для создания PDF, SolrService, который подключается к Solr, Statisticservice, который собирает всенаши методы, которые собирают статические данные в наших данных

Сервисы в Grails - это способ собрать методы вокруг определенной функциональной темы, чтобы дать возможность повторно использовать их в контроллерах (я забыл упомянуть наш SecurityService, который являетсядовольно хороший пример кросс-приложений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...