1. 程式人生 > >單例模式實現方法之懶漢式、餓漢式

單例模式實現方法之懶漢式、餓漢式

項目 只有一個 接下來 程序設計 選擇 bsp 私有 syn 屬性

Singleton 單例模式是一種經常在項目開發中使用的程序設計模式,它用於創建一個全局共享的實例對象。該實例對象在整個應用程序中只有一個,不會出現更多的該實例對象。

實現原理就是將類的構造方法私有化,即使用private修飾符來修飾構造方法,這樣外部就不能使用構造方法創建對象了,本類內部還是能夠創建對象的,所以,可以創建一個本類類型的成員變量來保存本類的唯一對象,然後提供屬性訪問器方法獲取這個唯一的實例,但是每次獲取的都是同一個對象,而不是重新創建的。

接下來將介紹兩種比較常用方法來實現單例模式。

一.

懶漢式:當程序第一次訪問單例模式實例時才進行創建 。

public class Lazy {
  
public static Lazy instance = null; //本類的唯一實例   private Lazy() {     //構造方法私有化   }   public synchronized static Lazy getInstance() { //獲取唯一實例     if(instance==null) instance = new Lazy();   return instance;     } }

二.

餓漢式:在程序啟動或單例模式類被加載的時候,單例模式實例就已經被創建。

public class Hungry {
    private static
Hungry instance = new Hungry();//本類的唯一實例 private Hungry() { //構造方法私有化 } public static Hungry getInstance() { //獲取唯一實例 return instance; } }

如何選擇這兩種方法呢?

如果單例模式實例在系統中經常會被用到,餓漢式式一個不錯的選擇。

如果單例模式在系統中會很少用到或者幾乎不會用到,那麽懶漢式是一個不錯的選擇。

單例模式實現方法之懶漢式、餓漢式