保证一个类仅有一个实例,并提供一个该实例的全局访问点。——《设计模式》GoF
ensure that a class has only one intstance

Singleton模式中的实例构造器可以设置为protected以允
许子类派生。
• Singleton模式一般不要支持ICloneable接口,因为这可能
会导致多个对象实例,与Singleton模式的初衷违背。
• Singleton模式一般不要支持序列化,因为这也有可能导致
多个对象实例,同样与Singleton模式的初衷违背。
• Singletom模式只考虑到了对象创建的管理,没有考虑对
象销毁的管理。就支持垃圾回收的平台和对象的开销来
讲,我们一般没有必要对其销毁进行特殊的管理。
• 不能应对多线程环境:在多线程环境下,使用Singleton模
式仍然有可能得到Singleton类的多个实例对象。