Singleton is most useful when you need to control access to a particular resource. For example, in my
test engine one class controls all loading of XML test script documents and tracks the usage of these DOMs. Obviously, having more than one instance of this class would be a big waste of memory and make debugging harder. Therefore the constructor is private and a static "factory" method handles initial creation of the single instance.
Bill