Принцип Инверсии Управления – Голливудский Принцип

Оригинал: Inversion of Control – The Hollywood Principle.

Среди программистов (включая и меня, так что здесь я публично признаю свою вину) бытует мнение о том, что Инверсия Управления (IoC) является не более, чем синонимом для старого принципа Внедрения Зависимости (DI). Существует простая причина для такой точки зрения: идея Принципа Внедрения зависимостей состоит в реализации классов, чьи элементы обеспечиваются окружающим контекстом, что позволяет не изменять код программы. Таким образом, процесс может быть рассмотрен как часть принципа IoC.

Но, несмотря на то, что уравнение DI=IoC может рассматриваться в целом как справедливое утверждение, все же концепция Инверсии Управления сама по себе гораздо шире. Фактически мы можем сказать, что DI – это частный случай IoC, но далеко не единственный. Это вновь приводит нас к началу: если DI – это всего лишь шаблон, который опирается на сильные стороны IoC, то что же такое Прицип Инверсии Контроля?

Читать дальше →