views:

146

answers:

3

Possible Duplicates:
What is so bad about Singletons
Problems with Singleton Pattern

Are there any downsides to the singleton pattern? I heard this was an interview question and i am coming up short on what was meant.

imho, it's about the usage and nothing in the pattern itself is problematic

+1  A: 

That's a very generic question, it really depends on your use cases. I'd cite the following:

  • You always need a mutex (or synchronized block) to protect the initial getInstance() call, which can be problematic in some cases.
  • It is a hack to hide the fact that you are creating a global variable, and global variables are generally bad. However, there are many cases where the simplicity that they bring is appreciable, but pay attention not to abuse them.
Zorglub
A: 
  1. Not testable or at least it's difficult
  2. Hard to find dependent classes
  3. Does not allow subclassing
  4. ...
Willi
A: 

From Wikipedia:

Some consider it an anti-pattern, judging that it is overused, introduces unnecessary limitations in situations where a sole instance of a class is not actually required, and introduces global state into an application.

Personally, since I've started using Spring to auto-wire my application I've never had the need to write a singleton.

Adamski