Inversion of control
From CSSEMediaWiki
Inversion of control is a software design principle that describes the flow of control being removed from central control. It is named Inversion of control because in procedural code it is common for control to be managed from a central code base. Inversion of control is proposed as an inversion of this control model.
Martin Fowler describes this principle under the name Dependency injection. See Martin Fowler - 'Inversion of Control Containers and the Dependency Injection Pattern' [1]
The factory pattern is an example of Inversion of control.