系列文章目录
设计模式——单例模式
一、单例模式是什么?
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
二、单例模式实现方法
1.懒汉式单例模式
使用对象时再创建:
//懒汉式单例模式
class LazySingleton {
private LazySingleton() {
}
private static LazySingleton instance = null;
public static LazySingleton getInstance(){
if (instance == null){
synchronized (LazySingleton.class){
if (instance == null){
instance = new LazySingleton();
}
}
}
return instance;
}
}
2.饿汉式单例模式
类装载时就完成实例化:
//饿汉式单例模式
class HungrySingleton {
private HungrySingleton() {
}
private final static HungrySingleton instance = new HungrySingleton();
public static HungrySingleton getInstance() {
return instance;
}
}
3.枚举类实现单例模式
//枚举式单例模式
enum EnumSingleton {
INSTANCE;
}
三.验证
public class TestSingleton{
public static void main(String[] args){
//验证饿汉式单例模式
HungrySingleton hungrySingleton1 = HungrySingleton.getInstance();
HungrySingleton hungrySingleton2 = HungrySingleton.getInstance();
System.out.println(hungrySingleton1 == hungrySingleton2);
//验证懒汉式单例模式
LazySingleton lazySingleton1 = LazySingleton.getInstance();
LazySingleton lazySingleton2 = LazySingleton.getInstance();
System.out.println( lazySingleton1 == lazySingleton2);
//验证枚举类单例模式
EnumSingleton enumSingleton1 = EnumSingleton.INSTANCE;
EnumSingleton enumSingleton2 = EnumSingleton.INSTANCE;
System.out.println( enumSingleton1 == enumSingleton2);
}
}
结果
以上就是本文要讲的内容,本文简单介绍了单例模式以及单例模式实现的三种方式。