设计模式之单例模式

博客基于Java代码展示设计模式中的单例模式。定义了Singleton类,含私有静态实例变量和静态获取实例方法,构造方法防止反射创建多实例。客户端类调用获取实例方法,验证获取的是同一实例,输出结果为true。

设计模式之单例模式
基于java代码示例

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // 私有构造方法,防止外部实例化
    }

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

在这个示例中,我们定义了一个 Singleton 类,其中包含一个私有的静态实例变量 instance 和一个静态方法 getInstance()。instance 变量用于保存类的唯一实例,而 getInstance() 方法用于获取该实例。

在构造方法中,我们将 instance 设置为 null,以防止外部通过反射创建多个实例。同时,我们使用了一个私有的静态方法 getInstance() 来获取该类的唯一实例。当第一次调用 getInstance() 时,它会创建一个新的 Singleton 实例并将其保存在 instance 变量中,从而保证后续调用 getInstance() 时都能返回同一个实例。

下面是一个客户端代码的示例:

public class Main {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();

        System.out.println(s1 == s2); // 输出:true
    }
}

在这个示例中,我们定义了一个 Singleton 类和一个客户端类 Main。客户端类通过调用 Singleton.getInstance() 方法来获取该类的唯一实例,并将其保存在 s1 和 s2 变量中。由于 Singleton 类使用了一个私有的静态方法 getInstance() 来获取实例,因此我们可以保证 s1 和 s2 变量保存的是同一个实例。最后,我们输出 s1 == s2 的结果,可以看到它是 true,说明 s1 和 s2 变量保存的是同一个实例。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李码砖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值