从简单案例了解设计模式–单例设计模式
单例设计模式是java设计模式中最简单的一种设计模式,单例设计模式的目的就是让应用的全局目标类只有一个实例对象。
首先构造方法私有话,来确保单例:
// 构造方法私有化
private HungrySingleton() {}
单例模式分类
单例模式分为两种一种是饿汉式,一种是懒汉式。
饿汉式
将类用static修饰并创建实例化对象,实现在类加载的时候去创建实例化对象。
具体代码如下:
public class HungrySingleton {
// 构造方法私有化
private HungrySingleton() {}
// 将自身实例化对象设置为一个属性,并用static、final修饰
private static final HungrySingleton instance = new HungrySingleton();
// 静态方法返回该实例
public static HungrySingleton getInstance() {
return instance;
}
}
懒汉式
static修饰实例化对象类的声明,再去调用方法的时候创建实例化对象,懒汉式存在线程安全的问题所以通过synchronized关键字实现同步。并加以判断如果有实例化对象存在就不去创建,如果没有在进行实例化。
public class LazySingleton {
// 将自身实例化对象设置为一个属性,并用static修饰
private static LazySingleton instance;
// 构造方法私有化
private LazySingleton() {}
// 静态方法返回该实例,加synchronized关键字实现同步
public static synchronized LazySingleton getInstance() {
if(instance == null) {
instance = new LazySingleton();
}
return instance;
}
}