单例模式小结

用户头像
L001
关注
发布于: 2020 年 06 月 24 日

单例模式

一个类只允许创建一个对象(或者实例),个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。

在业务开发场景中,处理资源访问冲(如日志记录,涉及到对同一个文件读写),表示全局唯一类中使用(ID自增等)使用。

在实际业务使用中,有2中经常用到的创建方法。一种为懒汉式,一种为饿汉式。

懒汉式代码模版

在类加载的时候,instance 静态实例就已经创建并初始化好了,instance 实例的创建过程是线程安全的。这样的实现方式不支持延迟加载(在真正用到的时候,再创建实例)。具体的代码实现如下所示:



//一个实例生成自增ID
public class IdGenerator {
private AtomicLong id = new AtomicLong(0);
private static IdGenerator instance;
private IdGenerator() {}
public static synchronized IdGenerator getInstance() {
if (instance == null) {
instance = new IdGenerator();
}
return instance;
}
public long getId() {
return id.incrementAndGet();
}
}

饿汉式代码模版

懒汉式相对于饿汉式的优势是支持延迟加载。具体的代码实现如下所示:

public class IdGenerator {
private AtomicLong id = new AtomicLong(0);
private static IdGenerator instance;
private IdGenerator() {}
public static synchronized IdGenerator getInstance() {
if (instance == null) {
instance = new IdGenerator();
}
return instance;
}
public long getId() {
return id.incrementAndGet();
}
}



用户头像

L001

关注

还未添加个人签名 2018.04.28 加入

还未添加个人简介

评论

发布
暂无评论
单例模式小结