Dependency Injection DI

Dependency Injection (DI) means that this is done without the object intervention, usually by a framework component that passes constructor parameters and set properties.

Inversion of Control IoC

Inversion of Control (IoC) means that objects do not create other objects on which they rely to do their work. Instead, they get the objects that they need from an outside source (for example, an xml configuration file).

Amazon.com: Programming in Scala: A Comprehensive Step-by-step Guide: Martin Odersky, Lex Spoon, Bill Venners: Books