Inversion Of Control (IoC)
- IoC reflects the model of relationships between a [[caller]] and a [[callee]].
- A classic [[flow of control]] implies that a client has a full control over the [[environment]] and sequence of calls to library methods.
- IoC implies that a callee takes control over some calls between caller and callee. (callbacks is the simplest form)
- Frameworks rule the client's code.
IoC can exist without Dependency Injection, buy the main way to perform the inversion of control is to apply Dependency Injection techniques.