【设计模式】Java之单例设计模式

1.单例设计模式:一个类只能有一个对象

1.1 创建单例类的步骤:

    1.将构造方法私有化

    2.创建私有的静态成员变量

    3.共有的静态成员方法,提供当前的唯一对象

 

1.2 创建单例的两种方式:

      1.饿汉式 -- 一开始执行时就先给单例类对象赋值

//方式一:饿汉式  一开始执行,就先给单例类对象赋值
class SingleInstance{
	//在单例类的内部创建了一个私有化对象
	private final static SingleInstance singleInstance = new SingleInstance();
	
	//构造方法私有化
	private SingleInstance() {
				
	}
	//建立一个public方法,将单例类对象提供出去
	public static SingleInstance getSingleInstance() {
		return singleInstance;
	}

	//单例类的功能区

}

    2. 懒汉式 -- 一开始为null,什么时候使用,就什么时候赋值

        懒汉式我们这里讨论考虑线程安全的情况。需要用synchronized关键字进行加锁,保证线程安全。

//懒汉式 
class SingleInstance{
	private static SingleInstance instance = null;
	private SingleInstance() {
		
	}
	public static SingleInstance getInstance() {
		if(instance == null ) {//编写最外层的if,是为尽量少的判断线程同步,提高效率
			synchronized (SingleInstance.class) {//获取当前类的字节码充当同步代码块的锁,让多个线程之间互斥  
				if(instance == null) {
					instance = new SingleInstance();
				}
			}
		}
		return instance;
	}
	//工作位置
}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值