單例模式實現的五種方法

2021-09-25 18:32:46 字數 1297 閱讀 1119

/**

* 測試餓漢式單例模式

* @author carlosxu

*/public class hungrysingleton

//方法不用同步,呼叫效率高

public hungrysingleton getinstance()

}

/**

* 測試懶漢式單例模式

* @author carlosxu

*/public class lazysingleton

//每次呼叫都需要同步,併發效率低

public static synchronized lazysingleton getinstance()

return lazysingleton;

}}

/**

* 使用靜態內部類實現

* 執行緒安全,效率高,支援延遲載入

* @author carlosxu

*/public class staticclasssingleton

//建立靜態內部類實現單例模式,注意:內部建立物件要用屬性的方式,且屬性為靜態的。不可使用內部方法建立物件並返回

private static class singleton

//獲取內部類中的屬性

public static staticclasssingleton getsingletoninstance()

}

/**

* 雙重檢查鎖模式實現單例模式

* 執行緒安全,效率高,支援延遲載入,但是有時jvm不相容,會出錯,不建議使用

* @author carlosxu

*/public class doublecheckingsingleton

public static doublecheckingsingleton getinstance()

} doublecheckingsingleton=ds;

} return doublecheckingsingleton; }

}

/**

* 使用列舉方式實現單例模式

* 執行緒安全,呼叫效率高,不能實現延遲載入模式

* *

* @author carlosxu

*/class stu{}

public enum enumsingleton

public stu getstu()

}

實現單例模式的五種方法

二 懶漢式 懶漢式與餓漢式的區別 餓漢模式的特點是載入類時比較慢,但執行時獲取物件的速度比較快 執行緒安全 懶漢模式的特點是載入類時比較快,但執行時獲取物件的速度比較慢 執行緒不安全 三 第三種也叫雙重鎖檢測 這個模式將同步內容放到if內部,提高了執行的效率,不必每次獲取物件時都進行同步,只有第一次...

五種單例模式實現

public class hunger private final static hunger hunger newhunger public static hunger getinstance 多個執行緒安全,但無法進行懶載入,如果類成員很多,則占用的資源比較多 public class lazy...

七種方法實現單例模式

三 懶漢式應用例項 四 雙重檢查 推薦使用 五 靜態內部類 推薦使用 六 列舉 推薦使用 所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法 靜態方法 比如hibernate的sessionfactory,它充當資料儲...