title: What exactly is "interface based programming"?
body: <p>I often hear/read about interfaced based programming but I am not exactly clear on what that really means.  Is interfaced based programming an actual stand alone topic that actually has books written about it?  If so, can anyone recommend any good ones?</p>
  
  <p>I came across interface based programming as I was reading about how good APIs are designed and would like to learn more about it.  Right now I am not clear how to properly go about designing an API around interfaces.</p>
  
  <p>Any info is greatly appreciated.</p>