title: Singleton and unit testing
body: <p>The Effective Java has the following statement on unit testing singletons</p>
  
  <blockquote>
    <p>Making a class a singleton can make it difficult to test its clients, as it’s impossible to substitute a mock implementation for a singleton unless it implements an interface that serves as its type.</p>
  </blockquote>
  
  <p>Can anyone explain the why this is so ?</p>