Инверсия управления

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Инверсия управления (Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах.

Формулировка:

  • Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Одной из реализаций IoC является внедрение зависимостей (англ. Dependency Injection). Dependency Injection используется во многих framework'ах, которые называются IoC контейнерами.

Содержание

Техники реализации [править]

Реализации Inversion of Control [править]

C++ [править]

Objective-C [править]

Java [править]

Программисты, использующие Java, применяют Inversion of Control в Inversion of Control контейнерах. Программное обеспечение запрашивает объект из контейнера, и контейнер создаёт объект и его зависимости. Сервер приложений ATG Dynamo был одной из первых вычислительных сред, эффективно использовавших этот подход. Современными примерами таких контейнеров служат: HiveMind, PicoContainer, Spring Framework (отметим, что Spring — полноценная корпоративная платформа, а не только IoC-контейнер), Apache Excalibur, Seasar, Google Guice, JBoss Weld и DPML Metro.

.NET [править]

PHP4 [править]

PHP5 [править]

Python [править]

RUBY [править]

ActionScript [править]

Groovy на Grails [править]

Groovy на Grails использует Spring Framework для запуска приложений.

Ссылки [править]