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