What’s so great about Inversion of Control? | Jeremy D. Miller: "is an essential tool for any software designer’s design toolbox because it’s often a great way to break dependencies between classes and promote loose coupling. IoC is vital for doing Test Driven Development without pulling out all of your hair in frustration. "