一 什么是单例模式,优点缺点及适用场景
1 单例模式概念:
创建型模式,自己内部创建一个自己的实例对象,并提供给外部获取自己实例的接口,还必须只有单个对象被创建。总结:单例类只有一个实例;必须自己创建自己的实例;单例类必须给其他类提供这一实例。关键代码:构造函数是私有的(private)
2 优点:
内存中只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。
3 缺点:
没有接口,不能继承,与单一职责原则冲突(一个类应该只关心内部逻辑,而不关心内部如何实例化)
4 适用场景:
要求生产唯一的序列号
创建一个对象需要消耗的资源过多,如数据库的连接
注意getInstance()方法需要使用同步锁Synchronized防止多线程时instance被多次实例化。
代码样例:SingleObject类提供给外界一个返回自己实例的静态方法,并且构造方法私有化
//单例类
public class SingleObject{
//在类装配时实例化类
private static SingleObject instance = new SingleObject();
//构造函数
private SingleObject(){}
//提供给外界的接口
public static SingleObject getSingle(){
return instance;
}
}
//测试单例类
public SingleDemo{
public static void main(String args[]){
SingleObject instance = SingleObject.getSingle();
}
}