Answering A C# Question – Jesse Liberty explores the reasons you might want to create an interface for use in your code, looking at abstraction, the ability to swap components, and moving on to Dependency Injection and Inversion of control.