24
If you have a situation when exactly one object is needed to coordinate actions across the system, then you can use this pattern. A good example of this is the Facade, that is, Facades can be implemented as singletons because often one Facade object is needed across the system.
But in general, it's usually a bad practice and should be avoided, one big reason is it greatly inhibits extensibility.