动机: 在软件系统中仅能有一个该类的实例。
保证软件系统只有一个该类的实例,这个工作应该让这个类去实现,这是该类的职责,于是应该给这个类增加一个方法,来访问该类的唯一实例。而不能让客户代码(调用该类的代码)环境来承担维护该类仅有一个实例的工作。
意图: 保证一个类仅有一个实例,并提供一个该实例的全局访问点。
实现方法: 在类中创建一个类型为该类的静态实例,使该实例成为全局唯一实例,并且以private方式封闭了构造方法,从而禁止了new的创建,而提供一个GetInstance()的公共静态方法来返回全局唯一实例。