Java中Singleton如何实现

2023-04-16 19:40:00 singleton java 如何实现

Singleton 是一种设计模式,它的主要目的是确保一个类只有一个实例,并且提供一个全局访问点让外部访问这个实例。在 Java 中,实现 Singleton 可以使用静态变量、静态方法和静态内部类。

静态变量:这是最简单的实现方式,可以使用一个静态变量来存储唯一的实例,并使用一个静态方法来获取这个实例。

public class Singleton {

private static Singleton instance = new Singleton();

// 私有构造函数

private Singleton() { }

// 静态工厂方法

public static Singleton getInstance() {

return instance;

}

}

静态方法:可以使用一个静态方法来实现 Singleton,该方法会返回一个实例,并且在第一次被调用时创建一个实例。

public class Singleton {

private static Singleton instance;

// 私有构造函数

private Singleton() { }

// 静态工厂方法

public static Singleton getInstance() {

if (instance == null) {

instance = new Singleton();

}

return instance;

}

}

静态内部类:这是一种比较常用的实现方式,它利用了 Java 的类加载机制来保证只有一个实例被创建。

public class Singleton {

// 静态内部类

private static class SingletonHolder {

private static final Singleton INSTANCE = new Singleton();

}

// 私有构造函数

private Singleton() { }

// 静态工厂方法

public static Singleton getInstance() {

return SingletonHolder.INSTANCE;

}

}

使用以上三种实现方式,可以在 Java 中实现 Singleton 模式,但是要注意,在多线程环境下,需要使用同步技术来保证实例的唯一性。

相关文章