设计模式之单例模式
单例模式类图是23种设计模式类图中最简单的,因为它的类图上只有一个类! 什么时候会用到单例模式呢? 有一些对象我们只需要一个,比如说:线程池(ThreadPool)、缓存(cache)、日志对象、充当打印机设备的驱动程序的对象等等,如果创造出多个实例,就会出现程序行为异常或者与结果不一致的现象。 如何创造出独一无二的对象实例呢? 我们都知道:如果我有一个类NewObject(), 我想创建这个类的对象,怎么做?--------new NewObject()就可以了; 是不是可以无限创建呢? --------如果它是公开类就可以; 如果它的构造函数是私有的呢? -------那别的类就不可以实例化它了(调用不了它的构造函数); 那谁来实例化它呢? --------只能它自己进行实例化了; 那我怎么使用它呢? --------通过get方法暴露出来; 那么: public class NewObject{ //声明静态变量类 private static NewObject newObject; //构造函数私有化 private NewObject(); //get方法暴露出去以便其他类调用 public static NewObject getInstance(){ //判断变量类是否已经实例化 //如果newObject引用为null,表示还没有创建实例