一,简介
单例模式是很常见一个设计模式,也是基本的设计模式,也是面试,笔试经常提到的设计模式,主要分为饿汉式,赖汉式
特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
1.饿汉式
//1.只能创建一个对象
//2.如果不想让别人创建对象,构造方法私有化
private static DateUtil du = new DateUtil();// 饿汉模式
//2.如果不想让别人创建对象,构造方法私有化
private DateUtil(){
}
//3.提供公开的方法,返回对象
public static DateUtil getInstance(){
return du;
}
这种方式单例模式,即在一开始就创建对象的事例,但是这种模式不如赖汉式
2.赖汉式
/*//提供公开的方法,用于获取对象
public synchronized static GeneRateCode getInstance(){
if(grc != null){
grc = new GeneRateCode();
}
return grc ;
}*/
当需要时才创建对象,这种比赖汉式更加节约内存,但是还是不够好,因为,他不是线程安全,下面就是真*赖汉式单例模式
//提供公开的方法,用于获取对象
public static GeneRateCode getInstance(){
if(grc == null){
synchronized(GeneRateCode.class){
if(grc == null){
grc = new GeneRateCode();
}
}
}
return grc ;
}