title: Should you always Code To Interfaces In Java
body: <p>I understand the principles of Coding to Interfaces - to decouple the implementation from the interface, and to allow implementations of the interface to be swapped in and out. </p>
  
  <p><strong>Should I code to interfaces for every class I write or is that overkill</strong>? I don't want to double the number of source files in a project unless it's really worth it. </p>
  
  <p><strong>What factors can I use to decide whether to code by interface or not?</strong></p>