簡體   English   中英

我可以像這樣實現單例模式嗎?

[英]Can I implement singleton Pattern like this?

想要探索實現Singleton Pattern的新方法。可以將此實現視為單例模式嗎? 如果否請提出改進​​代碼的建議。

 public interface Test {
        Singleton single = new Singleton();
        class Singleton {
            int i = 10;
            private Singleton(){}
        }
    }

是的您可以通過這種方式實現Singleton模式。 Interface聲明的所有字段都是final和static。 並且您在具有私有構造函數的接口內定義了內部類。 你的方式不同但接縫工作。 由於字段是靜態的和最終的,因此只有在加載接口的.class文件時,它們才會被實例化一次。

盡管代碼有效,但這仍然不是實現Singleton的最佳方法。 您可以使用私有構造函數創建一個普通的Public類。 在這個類中,您可以定義同一類類型的public static final字段,使用new關鍵字初始化它(您可以這樣做,即使構造函數是私有的,因為類中的代碼可以訪問私有實體)。 你的班級現在是Singleton 另一種方法是通過Enum

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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