1.单例设计模式:一个类只能有一个对象
1.1 创建单例类的步骤:
1.将构造方法私有化
2.创建私有的静态成员变量
3.共有的静态成员方法,提供当前的唯一对象
1.2 创建单例的两种方式:
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;
}
//工作位置
}