- Инверсия управления
-
Инверсия управления (Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах.
Формулировка:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Одной из реализаций IoC является внедрение зависимостей (англ. Dependency Injection). Dependency Injection используется во многих framework'ах, которые называются IoC контейнерами.
Содержание
Техники реализации
- Фабричный метод (англ. Factory pattern)
- Service locator (англ. Service locator pattern)
- Внедрение зависимости (англ. Dependency injection)
- IoC контейнер(англ. IoC-container)
Реализации 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 и DPML Metro.
.NET
- Unity Application Block 2.0
- Spring.NET
- StructureMap
- CastleProject
- Seasar
- Winter.NET
- Ninject
- Autofac
- MugenInjection
- OpenNETCF.IoC
PHP4
PHP5
Python
RUBY
ActionScript
Groovy на Grails
Groovy на Grails использует Spring Framework для запуска приложений.
Ссылки
Для улучшения этой статьи желательно?: - Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
Категории:- Объектно-ориентированное программирование
- Шаблоны проектирования
- Парадигмы программирования
Wikimedia Foundation. 2010.