title: Difference between the Facade, Proxy, Adapter and Decorator design patterns?
body: <p>What is the difference between the <em>Facade</em>, <em>Proxy</em>, <em>Adapter</em>, and <em>Decorator</em> design patterns?</p>
  <p>From a generic point of view, such patterns seem to do the same thing, that is: <strong>wrap an API and provide access to it</strong>.</p>
  <p><em>How to distinguish these patterns?<br />
  How to discern when one pattern suits more than the others?</em></p>