Урок Java 309: SOLID 6: Dependency Inversion

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 25

  • @unknownrus920
    @unknownrus920 2 ปีที่แล้ว +1

    наконец-то нашел нормальный видос, где показан процесс Dependency Inversion от начала до конца, спасибо!

  • @yuriykyus
    @yuriykyus 2 ปีที่แล้ว

    Ты первый кто понятно объяснил в чем именно ИНВЕРСИЯ заключается. Спасибо!

  • @ЕваХаритонова-ц6л
    @ЕваХаритонова-ц6л 2 ปีที่แล้ว

    очень круто, во всех видео куча сложной бессмысленной информации, а тут на практике все просто и ясно❤

  • @AlexandroLavichez
    @AlexandroLavichez 7 ปีที่แล้ว +14

    Ты молодчина! 300 уроков по java еще никто в истории не делал!

    • @leonardojake9153
      @leonardojake9153 3 ปีที่แล้ว

      i realize it is quite off topic but does anyone know of a good place to watch new movies online?

  • @Ilya-o9o
    @Ilya-o9o 2 ปีที่แล้ว

    большое спасибо за твои видео! не болей!

  • @СергейАндреев-ю1р
    @СергейАндреев-ю1р ปีที่แล้ว

    Спасибо друг!

  • @permishin
    @permishin 2 ปีที่แล้ว

    четко, спасибо!

  • @eugenegreer7542
    @eugenegreer7542 7 ปีที่แล้ว

    Классный канал с классными уроками. Смотрю, практически, с первых серий.

  • @user-segadev
    @user-segadev 4 ปีที่แล้ว +7

    короче, везде используем интерфейсы

  • @JashKa
    @JashKa 7 ปีที่แล้ว +3

    А в чём принципиальное отличие от 3-го принципа? В Open Close principle схемка про то что нужно использовать интерфейс (|main| - > interface < - |Class|) и рассуждения вроде как одинаковые.

    • @elikjaday3005
      @elikjaday3005 7 ปีที่แล้ว +1

      так это к слову было )3 закон был о том что надо делать программу расширяемой а не лезть в код с изменениями )а тут же говориться о внедрении)

    • @yaroslavkostetskiy3665
      @yaroslavkostetskiy3665 6 ปีที่แล้ว +6

      Ни автор, ни предыдущий коментатор не ответили на твой вопрос.
      Из-за того что твой вопрос являеться оксюмороном. Принципиального отличия нет вообще. Потому что это ВООБЩЕ разные принципы. Ты попутал их из-за того что все принципы солид стоять за гибкостю и изменяемость
      LSP гласит об избежении большых интерфейсов, но распостранению мелкий(болие специализированых)
      DIP гласит об независимости модулей верхнего уровня и нижнего. Реализация принципа лежит в создании прослойки для этих уровней.
      Автор взял хорошый пример в этом случаи, но не смог объяснить его.
      Я советую каждому прочитать статьи о SOLID на wiki

    • @Дмитрий-ю9к3г
      @Дмитрий-ю9к3г 4 ปีที่แล้ว +1

      @@yaroslavkostetskiy3665 похоже ты LSP перепутал с ISP (принцип разделения интерфейса).

  • @efimenkouliy1986
    @efimenkouliy1986 5 ปีที่แล้ว +10

    Блин чувак за старание респект, но реально ппц..... Он должен не создавать обьект внутри класса(Client) new DataAccess(); а получать обьект через конструктор класса..... public void Client(DAO someDao) { this.workingDao = someDao} и потом ты его используешь..... Увы урок мимо. Если кто будет смотреть подумайте, тут жестко прописано new DataAccess()......

    • @sergeykharuk5614
      @sergeykharuk5614 5 ปีที่แล้ว +2

      Ты перепутал с Dependency INJECTION. В уроке рассматривается термин Dependency INVERSION. Єто разные вещи)

  • @danielginzburg2924
    @danielginzburg2924 3 ปีที่แล้ว

    Самое понятное объяснение. Но форма изложения - "мама дорогая!"

  • @kxotsynaliaksandr4439
    @kxotsynaliaksandr4439 7 ปีที่แล้ว +4

    Но все равно же Client продолжает знать про DataAccess

    • @yaroslavkostetskiy3665
      @yaroslavkostetskiy3665 6 ปีที่แล้ว

      Я думаю это всего лиш абстрактный пример. Болия удачный пример будет на 3-х слойной архитектуры

    • @alla2662
      @alla2662 4 ปีที่แล้ว +4

      Да, поддерживаю. Мне кажется логичнее было бы не создавать экземпляр внутри класса, а принимать его в конструктор. Тогда принимаем интерфейс и ничего не знаем о конкретной реализации. А при передачи в конструктор передаем уже конкретный класс

    • @bohdans3496
      @bohdans3496 4 ปีที่แล้ว +1

      @@alla2662 это уже Dependency Injection a не Dependency Inversion, автор именно хотел подчеркнуть то, что нужно хранить в себе не конкретный класс, а именно абстракцию/интерфейс (и тогда Client знает только об этой абстракции/интерфейсе, не имея ни малейшего понятия какая именно это будет реализация абстракции -> DataAccess или DatabaseAccess или любая другая)

    • @bohdans3496
      @bohdans3496 4 ปีที่แล้ว

      @@alla2662 и да, dependency inversion и injection тяжело представить друг без друга, обычно эти 2 принципа применяются вместе, как раз то, про что вы описали)

  • @caffeinejavacode1475
    @caffeinejavacode1475 5 ปีที่แล้ว

    В чем отличие от Композиции?
    Автор, нужно признавать ошибки т.н иньекция не произошла

    • @Дмитрий-ю9к3г
      @Дмитрий-ю9к3г 4 ปีที่แล้ว +1

      Спасибо за коммент)) Хотел сначала указать, что тут об инверсии а не об инжэкшене, но прежде полез подробно узнать в чем разница. И разобрался в этих всех понятиях (IoC, DPI, DI)