簡體   English   中英

具有靜態字段的單例或類

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM