標籤:構造 div 載入 java設計 blog 定義 == span str
單例模式保證系統中的類只有一個執行個體。單例模式的要點有三個;一是某個類只能有一個執行個體;二是它必須自行建立這個執行個體;三是它必須自行向整個系統提供這個執行個體。單例模式可以分為兩種模式:餓漢模式、懶漢模式。
1、餓漢模式
public class EhanSingleton { //定義私人無參構造,防止通過new方式擷取類執行個體 private EhanSingleton(){ } //建立類的唯一執行個體,使用private、static修飾,保證類載入及建立執行個體,所以稱為餓漢模式 private static EhanSingleton ehanSingleton = new EhanSingleton(); //提供用於擷取執行個體的方法 public static EhanSingleton getInstance(){ return ehanSingleton; }}
測試
public class test { public static void main(String[] args) { EhanSingleton e1 = EhanSingleton.getInstance(); EhanSingleton e2 = EhanSingleton.getInstance(); System.out.println(e1 == e2);//true,結果顯示e1、e2為同一執行個體 }}
2、懶漢模式
public class LanhanSingleton { //定義私人無參構造,防止通過new方式擷取類執行個體 private LanhanSingleton(){ } //聲明類的唯一執行個體 private static LanhanSingleton lanhanSingleton; //提供用於擷取執行個體的方法,當第一次擷取時建立執行個體,所以稱為懶漢模式 public static LanhanSingleton getInstance(){ if(lanhanSingleton == null) lanhanSingleton = new LanhanSingleton(); return lanhanSingleton; }}
測試
public class test { public static void main(String[] args) { LanhanSingleton l1 = LanhanSingleton.getInstance(); LanhanSingleton l2 = LanhanSingleton.getInstance(); System.out.println(l1 == l2);//true,結果顯示l1、l2為同一執行個體 }}
3、餓漢模式、懶漢模式區別
1)餓漢模式在類載入時執行個體就被建立,故類載入時比較慢,但運行時擷取速度快。懶漢模式則相反。
2)餓漢模式是安全執行緒的,懶漢模式是非安全執行緒的。
java設計模式(一)單例模式