单例模式

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 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》

目录
相关文章
|
3月前
|
设计模式 安全 C#
C# 单例模式的多种实现
C# 单例模式的多种实现
|
4月前
|
C++
C++单例模式
C++中使用模板实现单例模式的方法,并通过一个具体的类A示例展示了如何创建和使用单例。
41 2
|
9月前
|
C++
【C++ 单例模式】
【C++ 单例模式】
|
安全 Java
原来要这么实现单例模式
原来要这么实现单例模式
65 0
|
安全 Java
单例模式很简单
《基础系列》
128 0
单例模式很简单
|
存储 安全 调度
单例模式的简单介绍
单例模式的简单介绍
|
设计模式 缓存
我学会了,单例模式
单例模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
142 0
我学会了,单例模式
|
设计模式 数据库 Python
|
开发框架 安全 Java
单例模式的应用(1)
单例模式的应用(1)
151 0
|
设计模式 安全 Java
单例模式中的那些坑
本章内容涉及到java多线程,类加载机制,JVM指令重排,final以及volatile的区别,序列化问题,java反编译,反射创建对象机制等相关问题. 需要读者具备一定的Java相关基础.
5024 0
单例模式中的那些坑