单例设计模式

单例设计模式

某个类只能有一个实例,提供一个全局的访问点。

单例模式的N种写法

//第一种
//不能实现单例对象的延迟加载
public class AClass {
private AClass() {
}
public final static AClass INSTANCE=NEW AClass();
}
//第二种:枚举实现
public enum AClass{
INSTANCE;
}
//第三种:双重检查锁定
public class AClass {
private AClass() {
}
private static AClass aClass;
public static AClass getInstance() {
if (aClass == null) {
aClass = new AClass();
}
return aClass;
}
}
//第四种:Initialization-on-demand holder idiom
//主要借助JVM加载class的特性来实现的,当JVM加载的类没有任何静态变量要去初始化,那么该类只会在真正被通过方法或变量被用到才进行初始化,这样我们就可以实现延迟初始化的目的
public class AClass {
private AClass() {
}
private static class InstanceHolder{
public final static AClass INSTANCE=new AClass();
}
public static AClass getInstance(){
return InstanceHolder.INSTANCE;
}
}

单例模式的使用场景

  1. 线程池
  2. OKhttp实例
posted @   Ysun_top  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示