定义
单例模式就是保证一个类只有一个实例存在,同时能提供对该实例的全局访问方法。
它有三个要点:
1.必须保证有且只有一个实例
2.只能自己创建这个实例
3.必须自行提供给整个系统一个全局访问方法
实现单例模式的代码可分为饿汉式和懒汉式
public Singleton getInstance(){
If(instance == null){
Lock(lockObject){
If(instance == null){
Instance = new Singleton();
}
}
}
}
这就是懒汉式单例模式实现,在多线程的运行环境下,需要使用使用双重锁定来保证实例的唯一性
下面这种就是饿汉式
private static Singleton instantce = new Singleton();
public Singleton getInstance(){
return instance;
}
在加载的时候就生成实例
单例模式的优缺点:
优点:有利于节约资源
缺点:单例模式很难实现序列化,单例模式采用静态方法,所以难使用继承方式,如果在集群的多个java虚拟机的情况下,具体分析哪个实例在运行也很困难