单例模式是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个雷提供了一种访问其唯一的对象的方法,可以直接访,不需要实例化该类的对象。
主要特征:
1、单例类只能有一个实例
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
优点:
1、在内存中只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。
2、避免资源的多重暂用(比如写文件操作)
缺点:
没有接口,不能继承,于单一职责冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
单例模式的三个要点:
1、需要一个保存类的唯一实例的静态成员变量
2、构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义
3、必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。