Following on from Ewan Makepeace 's excellent earlier question about the Singleton pattern, I thought I would ask "when does the Community believe that it is appropriate to use a Singleton?"
Let me offer up an example to critique:
I have an "IconManager" singleton. It begins by reading a properties file which indicates where my icons are located on disk, and then reads all the icons and caches them for future use.
The icons can be used all over my UI (tabs, tables, frames etc)... hence accessing them via a static Singleton method is very convinent. I also want to make sure that the icons are read once and only once (if would be very slow to read them from disk each time I needed one) Does the community believe this is an appropriate use of a Singleton? If not, how else might it have been implemented?
What other valid uses of Singletons might there be?