Собеседование .NET 2021. Каверзные вопросы: Что такое IOC?

Поделиться
HTML-код
  • Опубликовано: 28 окт 2024

Комментарии • 15

  • @Mr43046721
    @Mr43046721 3 года назад +5

    Отличный канал! Разбор вопросов на собеседованиях ещё сильнее мотивирует закапываться в книжки, чтобы понимать глубину всех глубин.

    • @PlatinumTechTalks
      @PlatinumTechTalks  3 года назад +2

      Спасибо за отзыв! Это точно, только не всегда конечно времени хватает закапываться в книжки. а что еще печальнее - это то, что если не использовать изученное в книгах на практике, то оно забывается. но в целом, всё что там пишут - это вполне логичные вещи, понимание которых приходит со временем и понимаешь, что всё не так уж сложно. хотя изначально всё кажется сложным)

  • @ilyal5712
    @ilyal5712 3 года назад +2

    Какая разница в понятиях:
    1) IOC (Inversion of Control)
    2) Dependency Injection
    3) Dependency Inversion (из SOLID)
    ?

    • @PlatinumTechTalks
      @PlatinumTechTalks  3 года назад +20

      Интересный вопрос, учитывая что эти понятия тесно связаны. Для начала стоит ответить на вопрос, что такого вообще зависимость. Зависимость - это любой объект, от которого зависит другой объект. Или проще говоря, когда в одном классе есть ссылка на другой класс. Как следствие при изменении одного класса может также потребоваться внесение изменений в тот класс, в котором используется измененный класс.
      Есть набор причин по которым следует избегать зависимостей. Ioc, Dependency injection и dependency inversion как раз про это.
      1) IoC - грубо говоря это набор рекомендаций для написания слабо связанного кода.
      2) Dependency injection - это больше уже про реализацию IoC. Но в целом, это идея обработки зависимостей вне зависимого класса, когда зависимому классу не нужно ничего делать. То есть вместо того, чтобы зависимый класс сам создавал экземпляры других классов, ему эти экземпляры передаются во время инициализации. А ответственность за создание экземпляров возлагается на третью сторону.
      3) Dependency inversion - принцип, который гласит, что ничто не зависит ни от чего конкретного, всё зависит от абстракций, от интерфейсов.
      В ближайшее время на нашем канале планируется серия видеороликов с кратким и с развернутым обзором принципов SOLID с примерами.

    • @ilyal5712
      @ilyal5712 3 года назад +1

      @@PlatinumTechTalks
      Спасибо за ответ.

  • @SoulGoodman-c7j
    @SoulGoodman-c7j 3 месяца назад

    Посмотрел первые минуты, это ведь идет объяснение не IoC, а DIP. Разве нет?

    • @N0R16
      @N0R16 Месяц назад

      не dip, а di. Инъекция зависимостей, это один из вариантов реализации ioc. т.е. в этом моменте все логично) а вот понятие ioc-контейнер, которое использует автор, особо смысла не несет

  • @poppyfield2438
    @poppyfield2438 2 года назад

    Напишите пожалуйста, что за Симонс, который пишет про DI подробно.

  • @РоманЕрмолин-ц7р
    @РоманЕрмолин-ц7р 3 года назад

    Почему-то все при описании ioc приводят только один пример с di и на этом все заканчивается. А ведь у ioc наверняка намного больше применений.

    • @Eless88
      @Eless88 2 года назад

      тут di и service locator, только все в кучу. ну, вообще просто самое распространенное и понятное применение. Еще колбеки, конечно. Возможно, неочевидное, но тоже пример ioc :)

  • @ДанилПетров-р2с
    @ДанилПетров-р2с 2 года назад +5

    Не вводите людей в заблуждение, ребята) Какой IoC-контейнер?)
    Инверсия управления (IoC) говорит об изменении потока исполнения, присуща фреймворкам и функциям обратного вызова и не имеет никакого отношения к управлению зависимостями.
    Почитайте лучше статью Сергея Теплякова и сами разберитесь о чем говорите sergeyteplyakov.blogspot.com/2014/11/di-vs-dip-vs-ioc.html

  • @leonid_konoplin
    @leonid_konoplin Год назад

    Марк Симан - автор упоминаемой книги