设计模式之单例模式
单例模式的用途
单例模式保证了系统中某个类只有一个实例,而且自行实例化并向整个系统提供自己。在计算机系统中,线程池、日志对象、缓存、对话框、打印机等都被设计成单例。spring默认也是单例模式,单例模式一方面可以控制实例产生的数量,提高垃圾回收的效率,另一方面也可以作为通信的媒介,使不同线程实现通信。
单例模式的写法:
关键是用private关键字修饰构造函数,使程序中不能通过new的方法创建对象。然后用懒汉模式或者饿汉模式来实现单例模式。
package designMode.singleton;
public class SingleLazyUnsafe {
public void print(){
System.out.println(SingleLazyUnsafe.class.getName());
}
//构造函数定义为私有的,防止被调用
private SingleLazyUnsafe(){};
private static SingleLazyUnsafe instance;
//若instance为空,进行初始化,运行时初始化,if判断没有加synchronized,线程不安全
public static SingleLazyUnsafe getInstance(){
if(instance == null){
instance = new SingleLazyUnsafe();
}
return instance;
}
}
package designMode.singleton;
public class