设计模式之单例模式(二)

单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保一个类只有一个实例,并提供全局访问点。它可以在一个系统或应用程序中创建一个全局对象,从而节省内存和资源,同时提供一种直接的方式来访问该对象。通常情况下,单例模式被用于一些管理资源或状态的类,如配置管理、日志管理或线程池等。

以下是一个使用饿汉式(线程安全)的单例模式java代码示例:


public class Singleton {
    // 定义为私有静态变量
    private static Singleton instance = new Singleton();
    
    // 私有构造函数
    private Singleton() {}
    
    // 公有静态方法获取唯一实例
    public static Singleton getInstance() {
        return instance;
    }
    
    // 公有实例方法
    public void doSomething() {
        System.out.println("Doing something...");
    }
}

// 测试代码
public class Test {
    public static void main(String[] args) {
        // 获取唯一实例
        Singleton singleton = Singleton.getInstance();
        
        // 调用实例方法
        singleton.doSomething();
    }
}

在上述代码中,我们使用一个私有静态变量 instance 来持有唯一的单例对象,同时将构造函数设为私有,从而避免客户端代码直接实例化该类。公有静态方法 getInstance() 用于获取全局唯一实例。在实现过程中我们使用了饿汉式单例模式,即在类加载时就创建了唯一实例,并且由于该实例是静态变量,因此多个线程同时获取该实例是线程安全的。

单例模式的优点:

1. 全局唯一实例,节省了内存空间和系统资源,并且简化了代码编写过程。
2. 提供一种方便且统一的访问入口,使得对于该实例的访问更加容易。

单例模式的缺点:

1. 单例实例一旦被创建,就不能直接替换和修改,否则可能会导致与依赖该实例的其他功能不兼容。
2. 单例全局性实例,可能会导致全局状态的存在,从而使得系统复杂度提高。

使用场景:

1. 当需要在系统中创建唯一的对象实例,并需要对该实例进行全局访问时。
2. 当系统中的某个类只需要存在一个实例时。
3. 当多个客户端代码需要共享一些公共资源或数据时,可以使用单例模式来维护这些资源或数据。

总之,单例模式是一种非常常用的设计模式,适用于需要确保全局唯一实例且方便访问的情况。在实际开发过程中,应该根据具体情况选择适合的单例模式实现方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值