Реализация паттера Domain Model от интерфейсов сервисов или сразу классов сервисов

Интересует паттерн Доменная Модель для Spring MVC приложения.

Нашел вариант, где слой сервисов сразу классы:

  • сущность Person
  • интерфейс PersonRepository extends JpaRepository<Person, Integer>
  • класс PersonService, который имеет поле типа PersonRepository
  • контроллер PersonController, который имеет поле PersonService.

И еще встречал другой вариант, где слой сервисов идет от интерфейсов:

  • сущность Person
  • интерфейс PersonRepository extends JpaRepository<Person, Integer>
  • интерфейс PersonService c сигнатурами методов базовых операций для пользователя
  • класс PersonService, который реализует выше указанный интерфейс + поле типа PersonRepository
  • контроллер PersonController, который имеет поле PersonService типа интерфейса.

Вопрос: зачем во втором случае нужна прослойка интерфейса для сервиса?


Ответы (0 шт):