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