Inversion of Control (IoC)
Inversion of Control (IoC) is a [design principle] in which the control flow of a program is somehow inverted.
In traditional programming, the main program is in control of the flow of the program. In IoC, the flow is inverted, and the control is given to a framework or runtime environment.
Various [design patterns] can be used to implement IoC, such as the [dependency injection] and [publish-subscribe] patterns.