`
futeng
  • 浏览: 264158 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

3 Useful Singleton Pattern in Java

阅读更多

1. Eager initialization (thread-safe)

 

/**
* Singleton pattern example with eager initialization way.
* @author <a href="mailto:ifuteng@gmail.com">futeng</a>
*/
public class EagerInitSingletion {

    private static final EagerInitSingletion INSTANCE = new EagerInitSingletion();

    private EagerInitSingletion() {}

    public static EagerInitSingletion getInstance() {
        return INSTANCE;
    }
}

 

2. Double-checked locking (lazy initialization, thread-safe)

/**
* Singleton pattern example with double-checked locking
* @author <a href="mailto:ifuteng@gmail.com">futeng</a>
*/
public class DoubleCheckedSingleton {

    private static volatile DoubleCheckedSingleton INSTANCE = null;

    private DoubleCheckedSingleton() {};

    // Double-checked locking
    public static DoubleCheckedSingleton getInstance() {
        if(INSTANCE == null) {
            synchronized (DoubleCheckedSingleton.class) {
                if(INSTANCE == null) {
                    INSTANCE = new DoubleCheckedSingleton();
                }
            }
        }
        return INSTANCE;
    }
}
 

 

3. Enum way (lazy initialization, thread-safe)

What is the best way to implements a Singleton pattern in Java? Enum way

 

simplest 

public enum EnumWaySingleton {
       INSTANCE;
   }

 more complex

/**
* Singleton Pattern using Java ENUM
* @author <a href="mailto:ifuteng@gmail.com">futeng</a>
*/
public enum EnumWaySingleton {
    INSTANCE;

    private final String[] names = {"xiaoqi", "xiaodi"};

    public void printNames() {
        System.out.println(Arrays.toString(names));
    }

    public static void main(String[] args) {
        EnumWaySingleton.INSTANCE.printNames();
    }
}

 

 

 

 

 

 

 

 

 

 

 
1
0
分享到:
评论

相关推荐

    singleton pattern

    singleton pattern 的定义 主要应用方法 优缺点 通过代码 具体分析解释

    Singleton pattern单例模式应用

    ### Singleton Pattern 单例模式应用详解 #### 一、单例模式概述 单例模式(Singleton Pattern)是一种常用的软件设计模式,在系统中确保某个类只有一个实例,并提供一个全局访问点。这种模式通常用于控制资源的...

    Software Architecture Design Pattern In Java

    1. **单例模式(Singleton Pattern)**: - 定义:确保一个类只有一个实例,并提供一个全局访问点。 - 应用场景:适用于配置管理、线程池等需要全局唯一对象的场合。 2. **工厂模式(Factory Pattern)**: - ...

    Design Pattern In Java.pdf

    《Design Pattern In Java》这本书是关于Java设计模式的指南,由James W. Cooper撰写。设计模式是软件开发中的一种最佳实践,它总结了在特定情境下解决常见问题的经验和方法,为面向对象编程提供了可复用的设计解决...

    singleton设计模式java实现及对比

    在Java中,Singleton模式的实现有多种方式,每种方式都有其优缺点,我们将详细探讨这些实现方法并进行对比。 ### 1. 饿汉式(Static Final Field) 这是最简单的Singleton实现方式,通过静态初始化器在类加载时就...

    Singleton Pattern 源码

    单例模式(Singleton Pattern)是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如控制资源的唯一性、全局配置对象或者缓存服务等。本篇文章将深入探讨...

    单例模式 Singleton Pattern

    ### 单例模式 Singleton Pattern #### 概述 单例模式是一种常见的设计模式,属于创建型模式之一。这种模式的核心在于确保某个类只有一个实例存在,并且提供一个全局访问点来获取该实例。单例模式在Java开发中尤其...

    Android SingletonPatternDemo

    Java据说有23种设计模式,Android的设计模式肯定是由Java来引申出来的。这里不讨论有多少人全会,有多少种设计模式会使用到,我们来讲下其中用得最多的也就是人人都知道的...这里是一个简单的SingletonPatternDemo。

    设计模式 之 “单例模式[Singleton Pattern]”

    **单例模式(Singleton Pattern)**是软件设计模式中的一种基础模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如配置管理、线程池、数据库连接池等,这些都...

    通过go语言实现单例模式(Singleton Pattern).rar

    在Go语言中,实现单例模式(Singleton Pattern)通常涉及确保一个类只有一个实例,并提供一个全局访问点来获取该实例。由于Go语言没有传统的类和对象概念,但具有结构体(struct)和函数,我们可以通过使用包级变量...

    前端大厂最新面试题-Singleton Pattern.docx

    Singleton Pattern单例模式详解 Singleton Pattern单例模式是一种创建型设计模式,提供了一种创建对象的最佳方式。该模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建在应用程序运行...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    这里我们将深入探讨三种常见的Java设计模式:单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。 **单例模式(Singleton)** 单例模式确保一个类只有一个实例,并提供一个全局访问点...

    创建型模式之单例模式(Singleton Pattern)

    3. 双重检查锁定(Double-Check Locking):结合了懒汉式的延迟加载和饿汉式的线程安全性,避免同步开销。 ```java public class Singleton { private volatile static Singleton INSTANCE; private Singleton() {...

    单例模式Singleton(java源码)

    Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例化它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()...

    Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现

    单件模式(Singleton pattern)是设计模式中的一种结构型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于系统中需要频繁创建和销毁的对象,如日志服务、线程池或者数据库连接等...

    c++-设计模式之单例模式(Singleton Pattern)

    单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局共享资源的场景,比如配置管理、日志记录等。 单例模式的组成 私有构造函数:防止外部...

    Laravel开发-singleton-pattern

    在`singleton-pattern-master`这个压缩包中,可能包含了一个示例项目或者一个库,它演示了如何在Laravel中实现和使用单例模式。可能的目录结构包括源代码文件、配置文件、示例测试等,帮助开发者更好地理解和应用...

    design-pattern-java.pdf

    工厂三兄弟之抽象工厂模式(二) 工厂三兄弟之抽象工厂模式(三) 工厂三兄弟之抽象工厂模式(四) 工厂三兄弟之抽象工厂模式(五) 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (一) 确保对象的...

    Java 单例模式Singleton

    简单的单例模式举例Singleton 分为恶汉式 懒汉式

    GOF设计模式(Patterns in Java)

    1. **创建型模式**:这类模式主要关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。...

Global site tag (gtag.js) - Google Analytics