gpt4 book ai didi

java - 单例或具有静态字段的类

转载 作者:行者123 更新时间:2023-12-02 12:52:33 25 4
gpt4 key购买 nike

我有一个类似这样的类(class)

class FileProcessorContext {
private static BufferedWriter fileWriter;
static {
createFile();
}
public static void writeToFile(...) {}
public static synchronized void closeFile(...) {}
}

我可以将FileProcessorContext创建为单例并使用它,而不是这个伪(它保留一些状态)实用程序类吗?

最佳答案

您可以使用具有单个枚举值的枚举,因为每个枚举值都是开箱即用的单例。
枚举可以实现一个可测试的接口(interface),以便能够在需要时切换到另一个实现:

public enum FileBufferedProcessorService implements FileProcessorService {

SINGLETON;
private BufferedWriter fileWriter;

FileBufferedProcessorService(){
createFile();
}
....

public synchronized void writeToFile(...) {}
public synchronized void closeFile(...) {}
}

和界面:

public interface FileProcessorService {

void writeToFile(...);

void closeFile(...);

}

关于java - 单例或具有静态字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44564309/

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