Инверсия управления
Инверсия управления (Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах.
Формулировка:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Одной из реализаций IoC является внедрение зависимостей (англ. Dependency Injection). Dependency Injection используется во многих framework'ах, которые называются IoC контейнерами.
Содержание |
Техники реализации [править]
- Фабричный метод (англ. Factory Method pattern)
- Service locator (англ. Service locator pattern)
- Внедрение зависимости (англ. Dependency injection)
- IoC контейнер (англ. IoC-container)
Реализации Inversion of Control [править]
| в разделе не хватает ссылок на источники информации.
Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 31 декабря 2012. |
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 [править]
- 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 для запуска приложений.
Ссылки [править]
Для улучшения этой статьи желательно?:
|

