2012-01-06 3 views
1

Я хочу создать уровень сервиса для своего приложения с помощью java. В то же время сервисный уровень также может быть подвергнут веб-сервису.Лучший способ разработки уровня сервиса в java

Моей идеей является создание одного обобщенного абстрактного класса для операций с базой данных, а все остальные классы обслуживания расширяют этот абстрактный класс и выполняют операцию БД с помощью этих абстрактных методов класса.

Это хорошая идея? Пожалуйста, помогите мне

+0

Что вы делаете, называется Фасад. Да Фасад - хорошая практика. – Acn

+0

Спасибо за ваши комментарии – Dilip

ответ

5

Трудно сказать с такими небольшими подробностями и даже не зная, что вы будете использовать для доступа к базе данных (JDBC? JPA «Спящий режим?»). Но

  • Сервисный уровень и уровень персистентности - это не одно и то же. Чтобы облегчить развязку и тестируемость, я предпочитаю иметь чистый сервисный уровень и уровень доступа к данным
  • Наследование, как правило, не лучший способ повторного использования кода. Используйте хорошо продуманный API и предпочитайте делегирование по наследованию.

Кроме того, не изобретайте велосипед. EJB3, Spring и другие структуры имеют хорошую поддержку для разработки сервисов и предоставления им веб-сервисов.

+0

Спасибо за ваш быстрый ответ. – Dilip

+0

Я использую спящий режим и весну, согласно моему командному решению, они не хотят иметь отдельный сервисный уровень, напрямую используют уровень DAO в контроллере и выполняют операции DB. Для этого слоя DAO мы собираемся использовать шаблон оформления фасада, как то, что я сказал в своем вопросе. После этого мы будем раскрывать каждый метод класса DAO как webserivce. Хорошо это делать? Пожалуйста, помогите мне. Заранее спасибо. – Dilip

+0

Нет, это не очень хорошая идея. Атомная транзакция обычно охватывает несколько вызовов DAO (например: дебетовать учетную запись и кредит другой). Поэтому вам необходимо всегда проходить через слой фасада (или служебный слой: это другое имя для одного и того же), чтобы разграничить транзакции. –

1

Вам следует рассмотреть возможность использования некоторой структуры, которая поможет вам с обычной. Например. Spring или Java EE. Эти рамки могут предложить вам множество встроенных решений, таких как IoC, декларативные транзакции, декларативная безопасность и т. Д.

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