JAVA设计模式之单例模式 - JAVA课堂笔记整理
1、设计模式总共有23种
2、single(单例设计模式):是用来解决可以保证一个类在内存当中对象唯一性的问题。
如何保证对象的唯一性?步骤:
A、构造函数私有化,同时不需要在里面写任何代码(私有化的目的:就是不让对方建立该类对象。这就造成single模式里面的对象无法在main()方法里面进行初始化new)
B、在本类中建立一个(私有并静态的)本类对象(在本类中new一个本类的对象,因为在本类中,它也是一个成员,所以将其私有化)
C、对外提供一个(静态)方法返回该对象[getXXX()],让外界获取该对象。(因为是single模式,所以返回对象的类型为single)
class Single{
private static final Single s = new Single();//**************B
private Single(){};//******************A
public static Single getSingle(){ //***************C
return s;
}
}
3、单例模式的另一种写法(面试中常见)
class Single{
private static Single s=null;
private Single(){};
public static Single getSingle(){ //在static后面需要加上一个synchronized
if(s==null){
s = new Single();
return s;
}
}
}
4、这两种写法的区别:
A、第一种写法的单例对象随着类的加载而加载,第二种写法的单例对象被调用的时候才
加载。
B、同步性:第二种写法如果不加synchronized容易出现安全隐患