The Singleton Anti-Pattern

The Singleton Anti-Pattern is a class which enforces a contract of one and only one instance of a given object ever existing. While this sounds like it's blessing… in practice it's far more often a curse. This is because the singleton pattern doesn't just enforce this contract… it permanently locks you into it by exposing it as part of the interface, allowing code to depend on this. If you truely need to enforce this mechanic, consider The Uno Counter-Pattern.