title: When should the Singleton pattern NOT be used? (Besides the obvious)
body: <p>I know well that you want to use Singleton to provide a global point of access to some state or service. The benefits of the Singleton pattern do not need to be enumerated in this question.</p>
  
  <p>What I am interested in are the situations when Singleton might seem like a good choice at first, but might come back to bite you. Time and time again, I've seen authors in books and posters on SO say that the Singleton pattern is often a very bad idea.</p>
  
  <p>The Gang of Four states that you'll want to use Singleton when:</p>
  
  <ul>
  <li>there must be exactly one instance of a class, and it must be accessible to clients from a well-known access point.</li>
  <li>when the sole instance should be extensible by subclassing, and clients should be able to use an extended instance without modifying their code.</li>
  </ul>
  
  <p>These points, while certainly notable, are not the practical ones which I seek.</p>
  
  <p>Does anyone have a set of rules or caveats that you use to assess whether you're <strong>really, really</strong> sure you want to use a Singleton?</p>