Often times, when we need an object that serves for many other objects in the domain we use the Singleton pattern. It is easy but as discussed by many people, its 'globally visible' aspect often causes maintenance nightmare, as we can't easily know which other objects are manipulating the singleton.
Also, undeterministic deletion order of singleton instances is often times problematic.
Singleton pattern, however, has many good points, too:
* Of course, as the name suggests -...