The Singleton Killer
We all hate singletons so here's another useful refactoring pattern: The Singleton Killer.
This is a step-by-step way of removing singletons from code. The solution is basically using Dependency Injection. I'm not 100% sure that DI containers should always be good, but they definitely should be considered for projects of any real size.