設計模式(四) 單例模式

2022-02-06 18:02:53 字數 890 閱讀 4868

單例模式屬於物件建立性質的模式,用於產生乙個物件的具體例項,並且可以確保系統中乙個類只能產生乙個例項。

public class singleton 

public static singleton getinstance()

}

public class lazysingleton 

private static lazysingleton instance = null;

public static synchronized lazysingleton getinstance()

}

public class staticsingleton 

private static class singletonholder

public static final staticsingleton getinstance()

}

建立5個執行緒,模擬多執行緒環境下的效能

public class client implements runnable

@override

public void run()

}

懶漢式 185ms 190ms

飢餓式 54ms 49ms

內部類式 56ms 61ms

在多執行緒條件下,懶漢式單例耗時要比飢餓式耗時要多很多,因為懶漢式為了使用延遲載入而引入了同步關鍵字,降低了系統效能

而內部類式單例既可以做到延遲載入,又不必使用同步關鍵字,是一種比較完善的實現。

設計模式 四 單例模式

singleton pattern 單例模式 singleton pattern 確保某乙個類只有乙個例項,向整個系統提供這個唯一例項,這個類稱為單例類,它提供全域性訪問的方法。單例模式是一種物件建立型模式。單例模式是結構最簡單的設計模式一,在它的核心結構中只包含乙個被稱為單例類的特殊類。單例模式的...

JAVA設計模式(四)單例模式

size medium b 單例模式 b size 確保乙個類只有乙個例項,並提供乙個全域性訪問站點。類圖 img 1.執行緒不安全的單例模式 單例模式 執行緒不安全 public class singletontest public static singletontest getinstance...

JS 設計模式 四(單例)

單例是乙個全域性變數,使用單例可以更好的控制全域性變數,還可以利用分支技術來封裝瀏覽器之間的差異。網頁中使用全域性變數由於可以被重寫風險很大。所以使用單例會更好的控制全域性變數。單例模式多數都是在載入指令碼的時候被建立出來。不過對於一些使用方式單例適合在用到的時候被載入,所以需要乙個可以懶載入的單例...