In the first part of this mini-series I talked about the basic use of interfaces, which is to provide a contract for your developers to work to. In this part, I'm going to try and demonstrate how interfaces can be used to make your application more...