2013-05-31 2 views
7

Мне нужно узнать разницу между типом методов (в терминах бизнес-логики), которые должны находиться внутри объектов Domain, DAO и Service слоев.Домены домена, DAO и службы

Например, если я создаю небольшое веб-приложение для создания, редактирования и удаления данных клиентов, насколько я понимаю внутри объекта уровня домена, я должен добавить методы, которые имеют свойства объекта Get/Set Customers, например (getName, getDOB, setAddress, setPhone ... и т. д.).

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

Заранее благодарим за ваше время и усилия.

ответ

8

Говоря в целом (не спящий режим или Spring конкретных):

дао слой содержит запросы и обновления для сохранения вашего домена слой в хранилище данных (обычно реляционная БД, но не должно быть). Используйте интерфейсы для абстрагирования своего DAO от фактического хранилища данных. Это происходит не часто, но иногда вы хотите изменить хранилища данных (или использовать mocks для проверки своей логики), а интерфейсы упрощают это. У этого были бы такие методы, как «save», «getById» и т. Д.

Уровень обслуживания обычно содержит вашу бизнес-логику и организует взаимодействие между доменным уровнем и DAO. Он будет иметь любые методы для вашего конкретного домена, такие как «verifyBalance» или «calculateTotalMileage».

+0

Можете ли вы предоставить мне примеры методов под слоем DAO? Насколько я понял из вас в разделе «Уровень сервиса», объекты должны иметь такие методы, как verifyBalance, calculateTotalMileage, которые, насколько я могу видеть, являются всеми методами расчета – MChan

+0

@MChan - DAO в основном занимается обновлением, созданием, удалением и извлечением данных из база данных. В случае не-объектного хранилища данных также будет выполняться сопоставление сохраненных данных (строк и столбцов в RDB) с объектом и от объекта к сохраненным данным. Метод nanmes может быть любым, что вы хотите, но обычно это что-то вроде «save», «delete», «query», «update». Уровень обслуживания не должен иметь методов расчета. Эти методы были бы любыми, что ваш бизнес должен определить или сделать. – lreeder

6

DAO: методы «обертки» для «обертывания» вызовов JPA или JDBC или SQL или noSQL или для доступа к системам БД.

Домен: вызовы бизнес-логики коррелируют с одним типом объектов (объектов домена).

Служба: вызовы бизнес-логики коррелируют с группой типов объектов или с группой из нескольких объектов одного типа.

(я не уверен, английском, извините .......)

Это означает: слой Сервис «больше», чем слой домена, часто близко к переднему концу, часто вызывает или использует несколько объектов домена.

объектов домена герметизировать большинство вещей для одной части домена (именно поэтому они называются D.O.)

DAO просто STH технической, иногда необходимо, а иногда нет. Когда используются реальные объекты домена, часто «хранилища» используются, чтобы скрыть доступ к системам баз данных или добавить специальную функциональность db или что-то еще.

внутренний интерфейс -> способ обслуживания 1 -> d.o. A типа X, d.o. B типа X, Список

+0

Если я использую Hibernate, то в чем смысл использования методов объекта DAO?Я имею в виду, как они могут помочь мне в доступе к данным? – MChan

Смежные вопросы