Описание тега inversion-of-control

Инверсия управления (IoC) - это абстрактный принцип, описывающий аспект некоторых проектов архитектуры программного обеспечения, в которых поток управления системой инвертируется по сравнению с процедурным программированием.

В традиционном программировании поток бизнес-логики контролируется центральным фрагментом кода, который вызывает многократно используемые подпрограммы, выполняющие определенные функции. При использовании инверсии управления этот принцип проектирования "централизованного управления" отменяется. Код вызывающего абонента имеет дело с порядком выполнения программы, но бизнес-знания инкапсулируются вызываемыми подпрограммами. На практике инверсия управления - это стиль конструирования программного обеспечения, при котором универсальный код многократного использования управляет выполнением кода конкретной проблемы. Он несет в себе сильную коннотацию, что повторно используемый код и код конкретной проблемы разрабатываются независимо, что часто приводит к единому интегрированному приложению. Инверсия управления в качестве руководства по проектированию служит следующим целям:

  • Существует разделение выполнения определенной задачи от реализации.
  • Каждая система может сосредоточиться на том, для чего она предназначена.
  • Системы не делают никаких предположений о том, что делают или должны делать другие системы.
  • Замена систем не окажет побочного действия на другие системы.

Внедрение зависимостей и инверсия управления тесно связаны. В этом вопросе обсуждается разница между ними.

Википедия: Инверсия управления

Связанные шаблоны