This from Jean-Paul Boodhoo's blog. Jean-Paul discuses the pros and cons of coding to interfaces. I sometimes find it difficult to know when to *stop* generating interfaces for classes. It's the age old question of abstract base class vs. interface. There's always at least one case where you could go either way.