Inversion of Control
Odwracanie sterowania to zasada projektowa promująca luźne wiązania klas przez odwrócenie kontroli przepływu w aplikacji.
IoC stosuje koncepcję oddzielenia wykonywania kodu od kodu służącego do rozwiązania konkretnego problemu. Dwie popularne implementacje zasady projektowej IoC to wstrzykiwanie zależności (Dependency Injection) i lokalizacja usługi (Service Locator). Do zarządzania cyklem życiowym zależności obie implementacje stosują tę samą koncepcję centralnego kontenera. Najważniejsza różnica pomiędzy wymienionymi implementacjami sprowadza się do sposobu uzyskiwania dostępu do zależności. SL polega na komponencie wywołującym zależność, natomiast w przypadku DI zależność jest wstrzykiwana do klasy poprzez odpowiednią modyfikację konstruktora, ustawienie jednej z właściwości lub wykonanie jednej z metod klasy.
Najpopularniejsze kontenery DI
- Autofac - https://autofac.org
- Ninject - http://www.ninject.org
- Unity - https://github.com/unitycontainer/unity