Реализация паттера 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 типа интерфейса.
Вопрос: зачем во втором случае нужна прослойка интерфейса для сервиса?