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(); } }
相关推荐
singleton pattern 的定义 主要应用方法 优缺点 通过代码 具体分析解释
### Singleton Pattern 单例模式应用详解 #### 一、单例模式概述 单例模式(Singleton Pattern)是一种常用的软件设计模式,在系统中确保某个类只有一个实例,并提供一个全局访问点。这种模式通常用于控制资源的...
1. **单例模式(Singleton Pattern)**: - 定义:确保一个类只有一个实例,并提供一个全局访问点。 - 应用场景:适用于配置管理、线程池等需要全局唯一对象的场合。 2. **工厂模式(Factory Pattern)**: - ...
《Design Pattern In Java》这本书是关于Java设计模式的指南,由James W. Cooper撰写。设计模式是软件开发中的一种最佳实践,它总结了在特定情境下解决常见问题的经验和方法,为面向对象编程提供了可复用的设计解决...
在Java中,Singleton模式的实现有多种方式,每种方式都有其优缺点,我们将详细探讨这些实现方法并进行对比。 ### 1. 饿汉式(Static Final Field) 这是最简单的Singleton实现方式,通过静态初始化器在类加载时就...
单例模式(Singleton Pattern)是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如控制资源的唯一性、全局配置对象或者缓存服务等。本篇文章将深入探讨...
### 单例模式 Singleton Pattern #### 概述 单例模式是一种常见的设计模式,属于创建型模式之一。这种模式的核心在于确保某个类只有一个实例存在,并且提供一个全局访问点来获取该实例。单例模式在Java开发中尤其...
Java据说有23种设计模式,Android的设计模式肯定是由Java来引申出来的。这里不讨论有多少人全会,有多少种设计模式会使用到,我们来讲下其中用得最多的也就是人人都知道的...这里是一个简单的SingletonPatternDemo。
**单例模式(Singleton Pattern)**是软件设计模式中的一种基础模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如配置管理、线程池、数据库连接池等,这些都...
在Go语言中,实现单例模式(Singleton Pattern)通常涉及确保一个类只有一个实例,并提供一个全局访问点来获取该实例。由于Go语言没有传统的类和对象概念,但具有结构体(struct)和函数,我们可以通过使用包级变量...
Singleton Pattern单例模式详解 Singleton Pattern单例模式是一种创建型设计模式,提供了一种创建对象的最佳方式。该模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建在应用程序运行...
这里我们将深入探讨三种常见的Java设计模式:单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。 **单例模式(Singleton)** 单例模式确保一个类只有一个实例,并提供一个全局访问点...
3. 双重检查锁定(Double-Check Locking):结合了懒汉式的延迟加载和饿汉式的线程安全性,避免同步开销。 ```java public class Singleton { private volatile static Singleton INSTANCE; private Singleton() {...
Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例化它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()...
单件模式(Singleton pattern)是设计模式中的一种结构型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于系统中需要频繁创建和销毁的对象,如日志服务、线程池或者数据库连接等...
单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局共享资源的场景,比如配置管理、日志记录等。 单例模式的组成 私有构造函数:防止外部...
在`singleton-pattern-master`这个压缩包中,可能包含了一个示例项目或者一个库,它演示了如何在Laravel中实现和使用单例模式。可能的目录结构包括源代码文件、配置文件、示例测试等,帮助开发者更好地理解和应用...
工厂三兄弟之抽象工厂模式(二) 工厂三兄弟之抽象工厂模式(三) 工厂三兄弟之抽象工厂模式(四) 工厂三兄弟之抽象工厂模式(五) 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (一) 确保对象的...
简单的单例模式举例Singleton 分为恶汉式 懒汉式
1. **创建型模式**:这类模式主要关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。...