基于JAVA的单例设计模式及适用场景
编码示例
单例设计模式的编码类型有多种, 如: 懒汉式, 饿汉式等, 这里那其中的一个作为例子:
/**
* @author xinruoxiangyang9010
* 单例模式, 双重检查的模式
*/
public class SingletonTest {
/**
* 注意这里需要使用volatile关键字进行修饰,避免指令重排导致的问题
*/
private static volatile SingletonTest instance;
/**
* 单例模式特点:私有化构造方法
*/
private SingletonTest() {
}
/**
* 对外提供获取实例对象的方法
* @return
*/
public SingletonTest getInstance() {
if (instance == null) {
synchronized (SingletonTest.class) {
if (instance == null) {
instance = new SingletonTest();
}
}
}
return instance;
}
}
适用场景
- 配置管理类, 某些配置只由一人管理, 省得乱
- 某些对象创建太复杂, 还占地方(空间), 所以只允许创建一个