Зачем нужна строгая реализация интерфейсов для классов в сервисном уровне Spring MVC? - PullRequest
0 голосов
/ 26 сентября 2010

В веб-приложении Spring, над которым я работаю, есть сервисный уровень, который относится к остальной структуре веб-приложения, например:

com/
    myapp/
          controller/
          model/
          service/

Этот сервисный слой состоит из интерфейса и реализации.классы.

Почему так важно иметь интерфейсы для всех этих классов?

Почему бы не просто файлы классов?

Ответы [ 2 ]

1 голос
/ 27 сентября 2010

Я верю, что Spring создаст прокси-класс во многих случаях. Прокси-класс реализует ваш интерфейс и в конечном итоге делегирует его реализации, но может выполнять некоторые промежуточные функции, такие как управление транзакциями. Если вы используете интерфейс, то вашему коду не имеет значения, получает ли он вашу реализацию напрямую или реализацию Spring Proxy.

1 голос
/ 26 сентября 2010

Интерфейсы позволяют передавать различные реализации этих интерфейсов без изменения базового кода.

Например, если модель хочет только HashMap, а у вас есть TreeMap, у вас будут проблемы. Но если модель принимает Map (хорошо, представьте, что это интерфейс), тогда она будет работать с HashMap или TreeMap.

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