设计模式-单例

1.定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。(通过静态函数获取实例)

1.单例模式3要素

(1)构造函数私有化

(2)指向自己实例的私有静态应用

(3)以自己实例为返回值的静态的公有的方法。

2.单例的两种模式

(1)饿汉式(就是已经准备好了,只要去拿)

public class Single{
	private static Single single=new Single();
	private Single(){
	}
	private Single getSIingleInstance(){
		return single;
	}
}
(2)懒汉式(要的时候我再创建)

public class Single{
	private static Single single;
	private Single(){
	}
	private Single getSIingleInstance(){
		if(single=null){
			single=new Single();
		}
		return single;
	}
}
3.单例模式的优点

1.在内存中只有一个对象,节省内存空间

2.避免频繁的创建销毁对象,提高性能

3.避免对共享资源的多重占用

4.可以全局访问

4.适用场景

1.需要频繁的实例化然后销毁的对象

2.创建对象耗时过多或者消耗资源过多

4.频繁的访问数据库或文件的对象

5.注意事项

1.只能使用单例类提供的方法得到单例对象,不要使用反射,否则会实例化一个新的对象

2.不要作断开单例对象与类中静态引用用的危险操作

3.多线程使用单例共享资源时,注意线程安全的问题

4.单例类由于构造方法是私有的,所以他们是不可以继承的

5.在java中饿汉式由于懒汉式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值