Почему интерфейс создан - PullRequest
0 голосов
/ 29 января 2020

я новичок в весне

в моем весеннем веб-проекте DAO и сервисе они создали интерфейс и, реализовав его, создали класс. мы можем ограничить интерфейс.

1 Ответ

0 голосов
/ 29 января 2020

Весь смысл использования интерфейса заключается в создании абстракции. Когда вы называете себя DAO из Сервиса, ваша служба не знает о фактической реализации DAO / случаев, когда у вас есть несколько реализаций вашего интерфейса DAO, ваша служба не знает о фактической используемой имплиции.

С весной вы будете использовать - Autowire, чтобы ввести зависимость. Вы будете ссылаться на свою зависимость с помощью интерфейса.

    @Component/@Service
    class ServiceImpl {
      @Autowired
      private DAOInterface dao;

      // Rest of code
    }

Spring знает - чтобы создать экземпляр этого ServiceImpl, ему нужно внедрить конкретный импл типа DAOInterface. Если у вас есть конкретная реализация, она делает это. Если у вас есть несколько impls - вам нужно определить по имени компонента, какую реализацию вам нужно, используя @ Qualifier.

Интерфейс является своего рода контрактом для ваших классов impl. Помимо абстрагирования от фактического значения, он помогает вам отделить слои, не имея прямой зависимости от конкретных классов. Это хороший дизайн шаблона

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