1. In the Singleton pattern instance constructor can be
set to protected to allow the derived subclass.
2. Singleton pattern generally don't support ICIoneable
interfaces, because this may lead to multiple object instances, with the
purpose of the Singleton pattern.
3. Singleton pattern generally don't support serial
number, as it is also likely to lead to multiple object instances, also with
the intent of the Singleton pattern.
4. Singleton pattern only takes into consideration the
management of object creation, not considering the management of the object
is destroyed. In terms of object support platform and garbage collection
overhead, we usually not necessarily need to destroy their special management.
5. You can't handle the multi-threaded environment: in the
field environment, using the Singleton pattern is still possible to get the
Singleton class multiple instances of the object.