1.单例设计模式:一个类只能有一个对象
1.1 创建单例类的步骤:
1.将构造方法私有化
2.创建私有的静态成员变量
3.共有的静态成员方法,提供当前的唯一对象
1.1 创建单例的两种方式:
1.饿汉式 -- 一开始执行时就先给单例类对象赋值
//方式一:饿汉式 一开始执行,就先给单例类对象赋值 class SingleInstance{ //在单例类的内部创建了一个私有化对象 private final static SingleInstance singleInstance = new SingleInstance(); //构造方法私有化 private SingleInstance() { } //建立一个public方法,将单例类对象提供出去 public static SingleInstance getSingleInstance() { return singleInstance; } //单例类的功能区 }
2. 懒汉式 -- 一开始为null,什么时候使用,就什么时候赋值
懒汉式我们这里讨论考虑线程安全的情况。需要用synchronized关键字进行加锁,保证线程安全。
//懒汉式 class SingleInstance{ private static SingleInstance instance = null; private SingleInstance() { } public static SingleInstance getInstance() { if(instance == null ) {//编写最外层的if,是为尽量少的判断线程同步,提高效率 synchronized (SingleInstance.class) {//获取当前类的字节码充当同步代码块的锁,让多个线程之间互斥 if(instance == null) { instance = new SingleInstance(); } } } return instance; } //工作位置 }