单例模式有哪些实现方式?

简介: 单例模式的常用实现方法有4种实现方式:饿汉模式、懒汉模式、静态内部类和枚举。推荐使用懒汉模式及枚举。使用单例模式可以避免频繁创建和销毁对象,减少系统资源的消耗。

单例模式的常用实现方法有4种实现方式:饿汉模式、懒汉模式、静态内部类和枚举。

推荐使用懒汉模式及枚举。


使用单例模式可以避免频繁创建和销毁对象,减少系统资源的消耗。


  • 懒汉模式
publicclassSingleton {
privateSingleton() {}
privatestaticvolatileSingletoninstance=null;
publicstaticSingletongetInstance() {
if (instance==null) {
synchronized (Singleton.class) {
if (instance==null) { 
instance=newSingleton();
                }
            }
        }
returninstance;
    }
}
  • 枚举
publicenumSingletonEnum {
INSTANCE;
publicSingletonEnumgetInstance(){
returnINSTANCE;
    }
}

  • 静态内部类
publicclassSingleton {
privateSingleton() {
    }
privatestaticclassSingletonHolder {
privatestaticfinalSingletonINSTANCE=newSingleton();
    }
publicstaticfinalSingletongetInstance() {
returnSingletonHolder.INSTANCE;
    }
}

  • 饿汉模式
publicclassSingleton {
privateSingleton() {}
privatestaticSingletoninstance=newSingleton();
publicstaticSingletongetInstance() {
returninstance;
    }
}
相关文章
|
7月前
|
设计模式 安全 测试技术
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
147 0
|
7月前
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
77 0
|
7月前
|
C++
C++实现单例模式-多种方式比较
单例模式,面试中经常被问到,但是很多人只会最简单的单例模型,可能连多线程都没考虑到,本文章从最简单的单例,到认为是最佳的单例模式实现方式,单例模式没有什么知识点,直接上源码
95 0
|
设计模式 存储 安全
八种创建单例模式的方式-懒汉式与饿汉式及枚举
八种创建单例模式的方式-懒汉式与饿汉式及枚举
125 2
|
设计模式 安全 Java
JAVA设计模式1:单例模式,确保每个类只能有一个实例
JAVA设计模式1:单例模式,确保每个类只能有一个实例
118 0
|
设计模式 安全 Java
特殊类设计及单例模式(C++)
特殊类设计及单例模式(C++)
81 1
|
6月前
|
设计模式 SQL 安全
Java设计模式:单例模式之六种实现方式详解(二)
Java设计模式:单例模式之六种实现方式详解(二)
单例模式设计(一)
饿汉模式 由名字我们就可以知道 "饿汉" 嘛,就比较急切,在类加载的时候就创建实例: 1. 写一个类,在本类中构造实例,用static修饰,直接创建出来(提供一个现有的实例) 2. 在本类中写一个方法获取到上面的实例 3. 将这个类的构造方法设置为私有的,让外部不能 new 这个对象
62 0
|
安全 Java 编译器
单例模式的4种实现方式
单例模式的4种实现方式
108 0
|
7月前
|
设计模式 安全 Java
Java设计模式—单例模式的实现方式和使用场景
那么为什么要有单例模式呢?这是因为有的对象的创建和销毁开销比较大,比如数据库的连接对象。所以我们就可以使用单例模式来对这些对象进行复用,从而避免频繁创建对象而造成大量的资源开销。
169 1