如果一个类只能创建一个实例,则这个类被称作单例类。
单例设计模式需要注意的几点:
1、单例类必须缓存已经存在的对象,不然就不知道是否之前创建过这个类的对象,所以就需要定义一个属性来保存曾经创建过的对象,因为这个属性要被下面的static方法修饰,所以必须定义为static。
2、因为要求只能被创建一个实例,为了防止其余的类随意创建该类的实例对象,所以该类的构造器被private修饰,从而把该类的所有构造器隐藏起来。
3、为了方便其余的类访问该类,则提供一个被public修饰的方法,因为调用该方法之前还不存在实例,所以不能被对象调用,只能被类名调用,所以该方法一定要用static修饰。
4、单例设计模式中的懒汉式(即一开始不赋初值的方式)一定要用同步锁。同步代码块中的锁用类名.class才能保证锁的唯一性。
class Singleton{
private static Singleton s = null;
private Singleton(){}
public ststic Singleton getInstance(){
if(s==null){
synchronized(Singleton.class){
if(s==null){
s = new Singleton();
}
}
}
return s;
}
}
黑马程序员_单例模式笔记
最新推荐文章于 2024-04-25 16:50:38 发布