Are there any downsides to the singleton pattern?

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


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.


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.

  • Not testable or at least it's difficult
  • Hard to find dependent classes
  • Does not allow subclassing
  • ...
  • 链接地址: http://www.djcxy.com/p/82168.html

    上一篇: 这是用C ++创建单例类的正确方法吗?

    下一篇: 单身模式有什么缺点吗?