[英]singleton or class with static field
我有一堂课,看起来像这样
class FileProcessorContext {
private static BufferedWriter fileWriter;
static {
createFile();
}
public static void writeToFile(...) {}
public static synchronized void closeFile(...) {}
}
我可以将FileProcessorContext
创建为单例并使用它,而不是使用此伪(具有某些状态)实用程序类吗?
您可以使用具有单个枚举值的枚举,因为每个枚举值都开箱即用。
枚举可以实现一个可测试的接口,以便在需要时能够切换到另一个实现:
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(...);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.