理解Java中单实例对象

单例模式确保一个类只有一个实例,并提供全局访问点,常用于日志记录器、数据库连接器等需要协调全局资源的场景。示例代码展示了一个基本的Logger类的单例实现,通过私有构造函数和静态getInstance()方法保证唯一实例。
摘要由CSDN通过智能技术生成

        单实例对象(Singleton)是一种设计模式,它确保一个类只能创建一个对象,并提供一个全局访问该对象的方法。

         在单实例模式中,该类的构造函数是私有的,因此不能从外部实例化该类。而是通过类中的静态方法来访问实例,该方法负责创建对象并返回实例,如果对象已经存在,则返回已有的实例。 

        单实例对象的一个常见应用场景是对于那些需要协调访问全局资源的类,例如日志记录器、数据库连接器等。在这些情况下,单实例模式可以确保只有一个实例在任何时候被使用,从而避免资源竞争和冲突。

        一个经典的单实例模式的例子是实现一个日志记录器,该记录器在应用程序中负责记录日志消息。由于在整个应用程序中需要使用同一个日志记录器,因此使用单实例模式可以确保只有一个实例在任何时候被使用。

下面是一个基本的单实例模式实现示例:

public class Logger {
    private static Logger instance;
    private Logger() {}

    public static Logger getInstance() {
        if (instance == null) {
            instance = new Logger();
        }
        return instance;
    }

    public void log(String message) {
        System.out.println("Log: " + message);
    }
}

        在上面的示例中,我们通过将构造函数设为私有来防止从外部实例化 Logger 类。然后,我们提供了一个名为 getInstance() 的静态方法,该方法负责创建或返回现有的实例。

我们可以通过以下方式获取单个实例并使用该实例记录日志消息:

Logger logger = Logger.getInstance();
logger.log("This is a log message");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值