title: In SOLID, what is the distinction between SRP and ISP? (Single Responsibility Principle and Interface Segregation Principle)
body: <p>How does the <a href="http://en.wikipedia.org/wiki/Solid_(object-oriented_design)" rel="noreferrer">SOLID</a> "Interface Segregation Principle" differ from "Single Responsibility Principle"?</p>
  
  <p>The Wikipedia <a href="http://en.wikipedia.org/wiki/Interface_segregation_principle" rel="noreferrer">entry for SOLID says</a> that</p>
  
  <blockquote>
    <p>ISP splits interfaces which are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them</p>
  </blockquote>
  
  <p>However, to me that sounds like just applying the SRP to interfaces as well as classes. After all, if an interface is only responsible for just one conceptual thing, than you wouldn't be able to break it down further.</p>
  
  <p>Am I missing something, or is ISP sort of redundant with SRP? If not, then what does ISP imply that SRP does not?</p>