单例模式

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79133275 懒...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79133275

懒汉模式

线程安全的单例模式(记录)
public class Singleton {
    private Singleton() {}  //私有构造函数
    private volatile static Singleton instance = null;  //单例对象
    //静态工厂方法
    public static Singleton getInstance() {
          //双重检测机制
         if (instance == null) {     
          //同步锁 
         synchronized (Singleton.class){  
           if (instance == null) {    
            //双重检测机制
             instance = new Singleton();
                }
             }
          }
          return instance;
      }
}

枚举创建单例

单例的枚举实现在《Effective Java》中有提到,
因为其功能完整、使用简洁、无偿地提供了序列化机制、 
在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点, 
单元素的枚举类型被作者认为是实现Singleton的最佳方法。 
class Resource{
}

public enum SomeThing {
    INSTANCE;
    private Resource instance;
    SomeThing() {
        instance = new Resource();
    }
    public Resource getInstance() {
        return instance;
    }
}

上面的类Resource是我们要应用单例模式的资源,具体可以表现为网络连接,数据库连接,线程池等等。
获取资源的方式很简单,只要 SomeThing.INSTANCE.getInstance() 即可获得所要实例。
单元素的枚举类型已经成为实现Singleton的最佳方法。–《Effective Java》

目录
相关文章
|
5月前
|
设计模式 安全 测试技术
【C++】—— 单例模式详解
【C++】—— 单例模式详解
|
2月前
|
存储 设计模式 测试技术
单例模式
单例模式
|
4月前
|
设计模式 安全 Java
单例模式分享
单例模式分享
17 0
|
设计模式 安全 编译器
2023-6-12-第三式单例模式
2023-6-12-第三式单例模式
70 0
|
5月前
|
C++
【C++ 单例模式】
【C++ 单例模式】
|
5月前
|
设计模式 安全
【单例模式】—— 每天一点小知识
【单例模式】—— 每天一点小知识
|
设计模式 安全 Java
单例模式的运用
单例模式的运用
37 0
|
SQL 安全 Java
五种单例模式介绍
五种单例模式介绍
86 0
|
设计模式 安全 Java
回顾一下单例模式
回顾一下单例模式
|
SQL 安全 Java
单例模式的理解
谈谈你对单例模式的理解。也算是老生常谈的问题了~~~
997 1