Java 單例模式

2018-01-17 18:32 更新

Java設(shè)計(jì)模式 - 單例模式


單例模式是一種創(chuàng)建模式。

這種模式只涉及一個(gè)單獨(dú)的類,它負(fù)責(zé)創(chuàng)建自己的對(duì)象。

該類確保只創(chuàng)建單個(gè)對(duì)象。

這個(gè)類提供了一種訪問其唯一對(duì)象的方法。

例如,當(dāng)設(shè)計(jì)一個(gè)用戶界面時(shí),我們可能只有一個(gè)主應(yīng)用程序窗口。我們可以使用Singleton模式來確保只有一個(gè)MainApplicationWindow對(duì)象的實(shí)例。

例子

下面的代碼將創(chuàng)建一個(gè)MainWindow類。

MainWindow類的構(gòu)造函數(shù)是私有的,并且有一個(gè)自身的靜態(tài)實(shí)例。

MainWindow類提供了一個(gè)靜態(tài)方法來獲取它的靜態(tài)實(shí)例到外部世界。

Main,我們的演示類將使用MainWindow類來獲取一個(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é)果。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)