Какие функции или что писать в сервисном слое Java Spring MVC - PullRequest
3 голосов
/ 22 февраля 2011

Предположим, у меня есть class USER с атрибутами.

В некоторых примерах я вижу UserService class, определенный для некоторых функций.

Я запутался, какие вещи или функции должны быть написаны в пользовательском классе икакие вещи в UserService.

Для e, g Если я хочу написать какую-то функцию для проверки пользователей в базе данных, например

validate(user,pass)

Где следует написать эти функции

Также еслиу меня есть class ShoppingProducts

, и я хочу, чтобы все продукты покупались определенным пользователем, в каком классе я должен написать эту функцию, которую я имею в виду в product class or UserService or ProductService

Ответы [ 2 ]

6 голосов
/ 22 февраля 2011

Это типичный пример модели предметной области против анемичной модели.

В этом обсуждении много теории, но мой практический совет:

  • поставить всеметоды, которые могут работать только с User свойствами в классе User.
  • помещают в службу все методы, которым требуется доступ к базе данных, доступ к веб-службам или другим уровням.

См. статью, связанную с моим.

0 голосов
/ 22 февраля 2011

Я не буду вступать в битву доменов против анемичных или SOA-данных отдельно от поведения.

Я скажу, что я думаю о сервисе как о поведении, которое распространяется на несколько доменов (несколько доменных объектов) и сделокс объектами передачи данных (т. е. не помещайте DTO в объекты вашего домена).

Поскольку REST настолько популярен в наши дни и тот факт, что ресурсы (REST с тех пор) не являются моделями, вам всегда нужны DTO иКлассы обслуживания.

С другой стороны, с AspectJ, Аннотациями и некоторым другим волшебством вы действительно можете продвинуться вперед в дизайне, управляемом Доменом, но я все же думаю, что вы не должны ссылаться на другие объекты домена в объекте домена.

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