title: Is the Service Locator pattern any different from the Abstract Factory pattern?
body: <p>At first glance, the Service Locator pattern looks the same as the Abstract Factory pattern to me.  They both seem to have the same use (you query them to receive instances of abstract services), and they both have been mentioned when I read about Dependency Injection.</p>
  
  <p>However, <a href="http://www.google.com/search?q=service%20locator%20anti-pattern" rel="noreferrer">I have seen the Service Locator pattern described as a poor idea</a>, but have seen <a href="http://docs.castleproject.org/Windsor.Typed-Factory-Facility-interface-based-factories.ashx" rel="noreferrer">direct support for the Abstract Factory pattern in at least one major Dependency Injection framework</a>.</p>
  
  <p>If they aren't the same, what are the differences?</p>