单列设计模式
1.什么是单列模式
单列模式:表示一个类只能去创捷一个实例。
2.单列模式的步骤
第一步:私有化构造方法。构造方法只能在类内调用,因此实例只能在类内创建。
第二步:在类内创建实例。
第三步:让外部通过本类的静态方法来获取实例。
3.饿汉模式
饿汉式单例模式在类加载的时候就立即初始化,并且创建单例对象。它绝对线程安全,在线程还没
出现以前就实例化了,不可能存在访问安全问题。
优点:执行效率高,性能高,没有任何锁
缺点:某些情况下会造成性能浪费
public class SingletonA{
//第二步:本类中创建自己的静态实例。
private static SingletonA singletonA = new SingletonA();
//第一步:私有化构造方法
private SingletonA(){
}
//第三步: 静态方法, 通过 类名.getSingletonA()调用;
public static SingletonA getSingletonA(){
return singletonA;
}
}
3.懒汉模式(常用)
为了解决饿汉式单例可能带来的内存浪费问题,于是就出现了懒汉式单例的写法,懒汉式单例模式的特点是,单例对象要在被使用时才会初始化。
优点:节省了内存,线程安全
缺点:性能低,多线程不安全
简单示例
public class SingletonB{
//先定义 singletonB 不创建对象
private static SingletonB singletonB;
//私有化构造方法
private SingletonB(){
}
public static SingletonB getSingletonb(){
//使用时再创建
if(singletonB == null){
singletonB = new SingletonB;
}
return singletonB;
}
}