[英]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.