常见的两种单例模式之懒汉单例模式和饿汉单例模式

常见的两种单例模式

单例模式:单例模式是常见的一种设计模式,该模式的主要目的是确保某一个类中只有一个实例存在。那么我们就在想为什么要使用单例模式呢?在编程时我们经常会频繁的创建和销毁全局类中的对象。为了避免这种消耗资源,占用内存的现象我们就使用单例模式。

单例模式要点:要保证一个类中只有一个实例。

接下来介绍两种常见的单例模式:懒汉模式和饿汉模式

/*
 * 懒汉单例模式
 */
public class SingleTonLazy {
	//自定义一个对象,使用final修饰防止被更改
	//使用static修饰供static类访问(static修饰的属性或方法可以通过类名.属性获取属性或者类名.方法调用方法)
	//使用private修饰让外部类看不见该对象
	private static  SingleTonLazy singleTonLazy=null;
	//私有化构造器
	private SingleTonLazy(){
		
	}
	//定义一个获取single对象方法,使用static修饰可以供外部通过类名访问
	public static SingleTonLazy getSingleTonLazy(){
		//之前定义的singleTonLazy是null,首先要判断
		if (singleTonLazy==null) {
			singleTonLazy=new SingleTonLazy();
		}
		return singleTonLazy;
	}
}
/*
 * 饿汉式单例模式
 */
public class SingleTonHungry {
	//自定义一个对象,使用final修饰防止被更改,使用final修饰避免single对象被修改
    //使用static修饰供static类访问,使用private修饰看不见该对象
	private static final SingleTonHungry single=new SingleTonHungry();
	//私有化构造函数
	private SingleTonHungry(){
		
	}
	//定义一个获取single对象方法,使用static修饰可以供外部通过类名访问
	public static SingleTonHungry getSingle(){
		return single;
	}
}

上面介绍了懒汉单例模式和饿汉单例模式,其中饿汉单例模式线程安全(对象使用final修饰,使得该对象不能被修改),懒汉单例模式比较节约内存(因为饿汉单例模式一来就创建一个对象,而懒汉单例模式是在需要使用对象的时候才调用getSingle方法获取)。这两种模式各有优缺点,没有绝对的适合,根据实际情况来使用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值