gpt4 book ai didi

java - 获取单例实例的方式有很大差异吗?

转载 作者:行者123 更新时间:2023-11-30 08:44:43 24 4
gpt4 key购买 nike

您好,我想知道如何正确获取单例实例以及最佳实践是什么?

public class SingeltonTest {

private static final CounterSingelton COUNTER = CounterSingelton.getInstance();

public static void main(String[] args) {

//Type A
for (int a = 0; a < 100; a++) {
COUNTER.increase();
}

//Type B
for (int a = 0; a < 100; a++) {
CounterSingelton counter = CounterSingelton.getInstance();
counter.increase();
}

//Type C
for (int a = 0; a < 100; a++) {
CounterSingelton.getInstance().increase();
}
}
}

最佳答案

最佳做法是避免使用static Singleton 并用contextual Singleton 代替它们。

static Singleton 访问的常见模式是使用 static getInstance() 方法。无需更改签名即可轻松更改为工厂方法或复杂的初始化过程。

但是,如果签名没有改变,行为就会改变。因此,它可能需要在调用方站点更改代码。

Type BType C 是严格等价的。由于类内部状态的变化(例如延迟加载),只有 Type A 可能(在未来)被破坏。

关于java - 获取单例实例的方式有很大差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com