單例模式是一種創(chuàng)建模式。
這種模式只涉及一個(gè)單獨(dú)的類(lèi),它負(fù)責(zé)創(chuàng)建自己的對(duì)象。
該類(lèi)確保只創(chuàng)建單個(gè)對(duì)象。
這個(gè)類(lèi)提供了一種訪(fǎng)問(wèn)其唯一對(duì)象的方法。
例如,當(dāng)設(shè)計(jì)一個(gè)用戶(hù)界面時(shí),我們可能只有一個(gè)主應(yīng)用程序窗口。我們可以使用Singleton模式來(lái)確保只有一個(gè)MainApplicationWindow對(duì)象的實(shí)例。
下面的代碼將創(chuàng)建一個(gè)MainWindow類(lèi)。
MainWindow類(lèi)的構(gòu)造函數(shù)是私有的,并且有一個(gè)自身的靜態(tài)實(shí)例。
MainWindow類(lèi)提供了一個(gè)靜態(tài)方法來(lái)獲取它的靜態(tài)實(shí)例到外部世界。
Main,我們的演示類(lèi)將使用MainWindow類(lèi)來(lái)獲取一個(gè)MainWindow對(duì)象。
class MainWindow { //create an object of MainWindow private static MainWindow instance = new MainWindow(); //make the constructor private so that this class cannot be //instantiated by other class private MainWindow(){} //Get the only object available public static MainWindow getInstance(){ return instance; } public void showMessage(){ System.out.println("Hello World!"); } } public class Main { public static void main(String[] args) { //Get the only object available MainWindow object = MainWindow.getInstance(); //show the message object.showMessage(); } }
上面的代碼生成以下結(jié)果。
更多建議: