Inversion of control is a software design principle that asserts a program can ... To avoid the confusion over the term IoC, dependency injection (DI) was coined to describe the specific IoC use case ...