The right tool for the job

Don’t be that guy that dismisses singletons just because the internet told you to. Every design pattern and anti-pattern has its place in software development. Static global classes and singletons can be more performant than more complex patterns like service locators and event systems.

All tools can be abused. If you are building a desk out of wood, you could in theory use the saw as the hammer.

Although patterns like the Singleton can be abused, there is a place for them, and it is up to you that other members of your team do no abuse them. Also, at the end of the day, you will want to ship the software, and if insistence on a particular pattern is slowing everything down, your less likely to get that software out of the door.

Take it from someone who has had a few projects cancelled, it is not fun