📌  相关文章
📜  单独 (1)

📅  最后修改于: 2023-12-03 15:37:03.381000             🧑  作者: Mango

单独

简介

在计算机领域中,单独(英文:Singleton)是一种常见的设计模式,用于限制一个类只能被实例化为一个对象。该对象持有该类的所有实例共享的状态。单独模式属于创建型模式,可以解决某些问题的困难,例如确保某个类只能有一个实例;提供对该实例的全局访问;为单例对象提供一个可访问的唯一入口等。

实现

在Java中实现单例模式可以有很多种方式,下面介绍其中的三种方式:

饿汉式
public class Singleton {
    private static Singleton instance = new Singleton(); // 在类加载的时候就创建对象实例

    private Singleton() {}

    public static Singleton getInstance() {
        return instance;
    }
}
懒汉式
public class Singleton {
    private static Singleton instance = null; // 没有在类加载时创建实例

    private Singleton() {}

    public static synchronized Singleton getInstance() { // 多线程同步
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
静态内部类
public class Singleton {
    private Singleton() {}

    // 静态内部类的方式,可以实现懒加载和线程安全
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
应用

单独模式常用于以下场景:

  • 管理对象状态信息的类,例如线程池、缓存、日志等。
  • 控制对象访问的类,例如数据库连接等。
  • 管理系统中唯一的对象,例如配置文件、计数器等。
总结

单独模式是一种常用的设计模式,可以限制一个类只能被实例化为一个对象,并提供对该对象的全局访问。在Java中也有多种实现方式,开发者可以据实际情况选择最适合的方式来实现单例模式。