日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

單例幾種常見的形式

系統 2214 0

原文地址: http://forestqqqq.iteye.com/blog/1896723

一,餓漢式單例

Java代碼 ? ? 收藏代碼
  1. //餓漢式單例1 ??
  2. public ? class ?Singleton1?{??
  3. ???? private ? static ? final ?Singleton1?instance?=? new ?Singleton1();??
  4. ???? private ?Singleton1(){}??
  5. ???? public ? static ?Singleton1?getInstance(){??
  6. ???????? return ?instance;??
  7. ????}??
  8. }??
  9. ??
  10. //餓漢式單例2 ??
  11. class ?Singleton{??
  12. ???? private ? static ? class ?Single{??
  13. ???????? static ? final ?Singleton?instance?=? new ?Singleton();??
  14. ????}??
  15. ???? private ?Singleton(){}??
  16. ???? public ? static ?Singleton?getInstance(){??
  17. ???????? return ?Single.instance;??
  18. ????}??
  19. }??

?

二,懶漢式單例

Java代碼 ? ? 收藏代碼
  1. //懶漢式單例 ??
  2. public ? class ?Singleton2?{??
  3. ???? private ? static ?Singleton2?instance?=? null ;??
  4. ???? private ?Singleton2(){}??
  5. ???? public ? static ? synchronized ?Singleton2?getInstance(){??
  6. ???????? if (instance?==? null ){??
  7. ????????????instance?=? new ?Singleton2();??
  8. ????????}??
  9. ???????? return ?instance;??
  10. ????}??
  11. }??

?

三,DCL雙重鎖檢測式單例

Java代碼 ? ? 收藏代碼
  1. //DCL雙重鎖檢測式單例 ??
  2. public ? class ?Singleton3?{??
  3. ???? private ? volatile ? static ?Singleton3?instance?=? null ;??
  4. ???? private ?Singleton3(){}??
  5. ???? public ? static ?Singleton3?getInstance(){??
  6. ???????? if (instance?==? null ){??
  7. ???????????? synchronized (Singleton3. class ){??
  8. ???????????????? if (instance?==? null ){??
  9. ????????????????????instance?=? new ?Singleton3();??
  10. ????????????????}??
  11. ????????????}??
  12. ????????}??
  13. ???????? return ?instance;??
  14. ????}??
  15. //參考文章:http://www.ibm.com/developerworks/cn/java/j-dcl.html ??
  16. }??

?

?

四,登記式單例

Java代碼 ? ? 收藏代碼
  1. import ?java.lang.reflect.Constructor;??
  2. import ?java.util.HashMap;??
  3. import ?java.util.Map;??
  4. ??
  5. //登記式單例 ??
  6. public ? class ?Singleton4?{??
  7. ???? private ?? static ? final ?Map<String,Singleton4>?instances?=??
  8. ???????????? new ?HashMap<String,Singleton4>();??
  9. ???? static {??
  10. ????????Singleton4?instance?=? new ?Singleton4();??
  11. ????????instances.put(instance.getClass().getName(),?instance);??
  12. ????}??
  13. ???? protected ?Singleton4(){}??
  14. ???? public ? static ? synchronized ?Singleton4?getInstance(String?name){??
  15. ???????? if (name?==? null ){??
  16. ????????????name?=?Singleton4. class .getName();??
  17. ????????}??
  18. ???????? if (instances.get(name)?==? null ){??
  19. ???????????? try ?{??
  20. ????????????????Constructor?con?=?Class.forName(name).getDeclaredConstructor();??
  21. ????????????????con.setAccessible( true );??
  22. ????????????????instances.put(name,?(Singleton4)con.newInstance());??
  23. ????????????}? catch ?(Exception?e)?{??
  24. ????????????????e.printStackTrace();??
  25. ????????????}??
  26. ????????}??
  27. ???????? return ?instances.get(name);??
  28. ????}??
  29. //參考文章:http://www.cnblogs.com/whgw/archive/2011/10/05/2199535.html ??
  30. }??

單例幾種常見的形式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 祥云县| 景泰县| 泰和县| 商洛市| 巴马| 子洲县| 绥化市| 长兴县| 兴化市| 博湖县| 灵寿县| 盐津县| 永吉县| 南丹县| 介休市| 安宁市| 北宁市| 平武县| 东港市| 东山县| 吴忠市| 双城市| 大冶市| 定日县| 林甸县| 洞头县| 泰安市| 冕宁县| 富源县| 汽车| 邯郸县| 弋阳县| 黄冈市| 廉江市| 即墨市| 柏乡县| 绥宁县| 赣州市| 探索| 高安市| 花莲市|