單例(Singleton)模式是Java中最簡單的設計模式之一。這種類型的設計模式屬于創(chuàng)建模式,因為此模式提供了創(chuàng)建對象的最佳方法之一。
這種模式涉及一個類,它負責創(chuàng)建一個對象,同時確保只創(chuàng)建一個對象。這個類提供了一種方法來訪問它的唯一對象,可以直接訪問,而不需要實例化類的對象。
我們將創(chuàng)建一個單一對象類 - SingleObject
。單個對象(SingleObject
)類的構(gòu)造函數(shù)是私有的,并且具有自身的靜態(tài)實例。
SingleObject
類提供了一個靜態(tài)方法來獲取其靜態(tài)實例到外部世界。SingletonPatternDemo
或示例類將使用SingleObject
類來獲取SingleObject
對象。
創(chuàng)建一個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();
}
}
驗證輸出,得到結(jié)果如下 -
Hello World!