单列模式是我们开发中常见的设计模式之一,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。
优点
1、单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
2、因为类控制了实例化过程,所以类可以灵活更改实例化过程。
我们平时用到的方式主要有以下两种:
1、双重检查加锁方式
public class Singleton {
private volatile static Singleton singleton;
private Singleton() {
}
public static Singleton newInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
2、静态内部类方式
public class Singleton {
private static class SingletonHolder {
private static Singleton singleton = new Singleton();
}
private Singleton() {
}
public static Singleton newInstance() {
return SingletonHolder.singleton;
}
}
这两种方式确保了线程安全的问题,是我们平时工作面试经常遇到的。
本文深入解析单例模式,一种常用的设计模式,确保类只有一个实例并提供全局访问点。介绍了单例模式的两大实现方式:双重检查加锁和静态内部类,并讨论了它们如何解决线程安全问题。
110

被折叠的 条评论
为什么被折叠?



