單例(Singleton)模式是Java中最簡單的設計模式之一。這種型別的設計模式屬於建立模式,因為此模式提供了建立物件的最佳方法之一。
這種模式涉及一個類,它負責建立一個物件,同時確保只建立一個物件。這個類提供了一種方法來存取它的唯一物件,可以直接存取,而不需要範例化類的物件。
我們將建立一個單一物件類 - SingleObject
。單個物件(SingleObject
)類別建構函式是私有的,並且具有自身的靜態範例。
SingleObject
類提供了一個靜態方法來獲取其靜態範例到外部世界。SingletonPatternDemo
或範例類將使用SingleObject
類來獲取SingleObject
物件。
建立一個Singleton類,
SingleObject.java
public class SingleObject {
//create an object of SingleObject
private static SingleObject instance = new SingleObject();
//make the constructor private so that this class cannot be
//instantiated
private SingleObject(){}
//Get the only object available
public static SingleObject getInstance(){
return instance;
}
public void showMessage(){
System.out.println("Hello World!");
}
}
從單例類中獲取唯一的物件。
SingletonPatternDemo.java
public class SingletonPatternDemo {
public static void main(String[] args) {
//illegal construct
//Compile Time Error: The constructor SingleObject() is not visible
//SingleObject object = new SingleObject();
//Get the only object available
SingleObject object = SingleObject.getInstance();
//show the message
object.showMessage();
}
}
驗證輸出,得到結果如下 -
Hello World!