Feb 04, 2010
Singleton pattern ensure that there would be only one class instance available at any point in time but you can not create instance of a class( even a single instance) which is maked as a static.
Feb 17, 2010
I will talk only about one perspective as right now only this hit my mind ;)
Let's say your singleton class is per context base. Take for an example your ShoppingCart class, and for it you need to have only one instance per customer session. Obviously a simple static class won't do here. Singleton is all about having the same "INSTANCE" throughout a particular context.
And why will we like to do that. Well in this particular scenario we are doing it for state management as the same instance is entertaining different requests so we can have ShoppingCart data through out that session.
Mar 07, 2010
The Singleton pattern has several advantages over static classes. First, a singleton can extend classes and implement interfaces, while a static class cannot (it can extend classes, but it does not inherit their instance members). A singleton can be initialized lazily or asynchronously while a static class is generally initialized when it is first loaded, leading to potential class loader issues. However the most important advantage, though, is that singletons can be handled polymorphically without forcing their users to assume that there is only one instance
Feb 17, 2010
The primary reason you wouldn't use a Singleton as a static class has to do with the potential for multi-threading issues. Note the following quote from http://msdn.microsoft.com/en-us/library/ms998558.aspx.