- 什么是单例设计模式:
单例设计模式就是使用这个类,只能创建该类唯一的对象。 - 基本的单例设计模式,创建步骤:
1.创建一个静态的私有的成员变量,变量名和类名相同,并new出来这个对象。
2.创建一个私有的无参构造方法;
3.创建一个公共的静态的返回值类型为本类的****方法,在方法内部返回被创建的实例对象
4.要想创建一个单例的对象,那么就使用类名点方法名的方式对代码进行调用。
package cn;
public class Demo02 {
private static Demo02 demo02 = new Demo02();
private Demo02(){}
public Demo02 getDemo(){
return demo02;
}
}
- 因为上面方法在创建实例的时候,会出现成员变量new出来对象的情况,当这样的类特别多的时候,那么就会影响到系统的性能方面。
- 使用synchronized锁对方法进行加锁
package cn;
public class Demo03 {
private static Demo03 demo03=null;
private Demo03(){}
public static synchronized Demo03 getDemo03(){
if (demo03==null) {
return demo03 = new Demo03();
}
return demo03 ;
}
}
- 上面锁的粒度太大了,那么就是用同步代码块来进行加锁
package cn;
public class Demo04 {
private static Demo04 demo04 = null;
private Demo04(){}
public static Demo04 getDemo04(){
if (demo04==null){
synchronized (Demo04.class){
return demo04=new Demo04();
}
}
return demo04;
}
}