[watchmen设计模式笔记]01单实例模式

1.单例模式的原理:
单例模式本质就是希望我们的JVM中只有一份实体对象.这个应用程序共享这个唯一对象.
2.单例模式的形式: 

                   1)饥汉模式
                   2)饱汉模式
饥汉模式:应用在编译的时候就已经确定创建了一个实例
饱汉模式:就是在运行中才确定我们的实例.
区别: 1)在多线程的环境下饱汉模式会出现线程安全的问题,这样导致JVM中可能存在多个对象  这样违背了我们的单例模式.
          2)我在非线程的情况,我们使用饥汉模式要好一些,多线程的情况下我们采用饱汉模式

总结:1)我们需要有一个静态的对象属性,并且私有化.
          2)要有一个私有的构造函数
          3)要有一个静态的返回单例对象的方法,这个方法名最好统一成getInstance().

/*
 * 饥汉模式:应用在编译的时候就已经确定创建了一个实例
 */
public class Single {
	private static Single single = new Single();
	private Single(){}
	public  static  Single getInstance(){
		return single;
	}
	
	public void disp(){
		System.out.println("测试单例模式!");
	}
}

/*
 * 饱汉模式:在运行的时候才创建实例对象
 * 多线程的模式下可能会多个对象,违背单例模式 ,所以使用synchronized
 */
public class SingleSyn {

	private static SingleSyn single = null;
	private SingleSyn(){};
	public  synchronized  static  SingleSyn getInstance(){
		if(single==null){
			single = new SingleSyn();
		}
		return single;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值