title: What Is “the Interface” And How Do I Program “Against” It?
body: <pre><code>ArrayList&lt;Class&gt; name = new ArrayList&lt;Class&gt;(#)
  </code></pre>
  
  <p>Someone told me yesterday that something like this is bad practice, and that I should program “against the interface”, like this:</p>
  
  <pre><code>List&lt;Class&gt; name = new ArrayList&lt;Class&gt;(#)
  </code></pre>
  
  <p>What did he mean?</p>