The prevalence of Singletons in a design is inversely proportional to the maturity of the design, and the designers.
Be it known, that from this day forward, this shall be known as Button’s Law. (Just kidding)
There is a note a truth here, however. I’ve talked to a lot of the best designers that I know in the field, and we all share a common opinion. (Not that I’m putting myself in the same class as these developers. I’m merely stating that we share the same opinion!!!) Singletons can be a useful pattern, but they are also the most abused pattern seen in the wild. You can read about my personal feelings about singletons in Scott Densmore’s blog.
Joshua Kerievsky has written an excellent summary of this point of view in his new book, Refactoring to Patterns. Reading this chapter in his book is what brought this rant to mind.
I now return you to your regularly scheduled programming.