πŸ†
.NET Developer Roadmap
  • README
  • Tech Skills
    • Π―Π·Ρ‹ΠΊ C#
      • LINQ
      • ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ
      • Expression Trees
      • РСфлСксия
      • Диагностика
    • БистСмы контроля вСрсий
    • Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
      • .Net Framework / .Net Core
      • Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ
        • Dapper
        • Entity Framework
      • Task Scheduling
      • Good to Know Libraries
    • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ качСства
      • ВСстированиС
      • Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³
      • Code Review
      • ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³
      • Π Π°Π±ΠΎΡ‚Π° с тСхничСским Π΄ΠΎΠ»Π³ΠΎΠΌ
    • Π‘Π°Π·Ρ‹ Π”Π°Π½Π½Ρ‹Ρ…
      • T-SQL
      • NoSQL
      • Search Engines
      • Cloud Databases
    • ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ
      • Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования
      • Π¨Π°Π±Π»ΠΎΠ½Ρ‹ уровня доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ
      • ООП
      • SOLID
      • Inversion of Control
      • АрхитСктурныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹
        • Command Query Responsibility Segregation, CQRS
        • Domain-driven design, DDD
    • ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π’Π΅Π±-сСрвисов
      • HTTP, REST, Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ
      • Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      • Авторизация ΠΈ АутСнтификация
      • Web Servers
    • Алгоритмы ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π”Π°Π½Π½Ρ‹Ρ…
    • РаспрСдСлённыС систСмы ΠΈ ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹
      • Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования
      • Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠΈ доставки
      • Message Brokers
      • Message-Bus
      • Docker
      • Kubernetes
      • ΠšΠΎΠ½ΡΠ΅Π½ΡΡƒΡ Π² распрСдСлСнных систСмах
    • Автоматизация Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки
  • Personal Skills
    • ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
Powered by GitBook
On this page
  • ОписаниС:
  • Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:

Was this helpful?

  1. Tech Skills
  2. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Inversion of Control

PreviousSOLIDNextАрхитСктурныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹

Last updated 5 years ago

Was this helpful?

ОписаниС:

  • Inversion of Control (IOC, Π˜Π½Π²Π΅Ρ€ΡΠΈΡ управлСния) - ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊ управлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ оборачиваСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя ΠΈ порядок Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ IOC Π½Π΅ΠΊΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ структура ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΠΠ°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ. ΠžΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² событийной ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования, которая часто рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ IOC - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ занимаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ событий, Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ событий управляСтся Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ.

  • Dependency Inversion Principle (DIP, ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ инвСрсии зависимости, soliD) - ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоит ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… постулатов:

    • ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½ΠΈΠΆΠ½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. И Ρ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ абстракций

    • Абстракции Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. Π”Π΅Ρ‚Π°Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ абстракций

  • Dependency Injection (DI, Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй) - ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ классу Π΅Π³ΠΎ зависимостСй. Π‘Ρ‹Π²Π°Π΅Ρ‚ нСсколько Π²ΠΈΠ΄ΠΎΠ² DI:

    • Constructor Injection - Ρ‡Π΅Ρ€Π΅Π· конструктор, для зависимостСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… всСму классу

    • Method Injection - Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄, для зависимостСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ

    • Property Injection - Ρ‡Π΅Ρ€Π΅Π· свойство, для Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… зависимостСй

  • DI-container - Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ВнСдрСния зависимостСй

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:

IoC, DI, IoC-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
Understanding Dependency Injection in .NET Core
DI vs. DIP vs. IoC
The Dependency Inversion Principle
Inversion of Control Containers and the Dependency Injection pattern