麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 你熟悉單例設計模式嗎?

你熟悉單例設計模式嗎?

來源:千鋒教育
發布人:qyf
時間: 2022-09-20 17:57:16 1663667836

你熟悉單例設計模式嗎

  1. 單例模式簡介

  單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到 餓漢式 和 懶漢式 這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。

  1.1 單例模式簡介

  單例模式是一種常用的軟件設計模式,其定義是單例對象的類只能允許一個實例存在。

  許多時候整個系統只需要擁有一個的全局對象,這樣有利于我們協調系統整體的行為。比如在某個服務器程序中,該服務器的配置信息存放在一個文件中,這些配置數據由一個單例對象統一讀取,然后服務進程中的其他對象再通過這個單例對象獲取這些配置信息。這種方式簡化了在復雜環境下的配置管理。

  1.2 基本的實現思路

  單例模式要求類能夠有返回對象一個引用(永遠是同一個)和一個獲得該實例的方法(必須是靜態方法,通常使用 getInstance 這個名稱)。

  單例的實現主要是通過以下兩個步驟:

  將該類的構造方法定義為私有方法,這樣其他處的代碼就無法通過調用該類的構造方法來實例化該類的對象,只有通過該類提供的靜態方法來得到該類的唯一實例;

  在該類內提供一個靜態方法,當我們調用這個方法時,如果類持有的引用不為空就返回這個引用,如果類保持的引用為空就創建該類的實例并將實例的引用賦予該類保持的引用。

  1.3 注意事項

  單例模式在多線程的應用場合下必須小心使用。如果當唯一實例尚未創建時,有兩個線程同時調用創建方法,那么它們同時沒有檢測到唯一實例的存在,從而同時各自創建了一個實例,這樣就有兩個實例被構造出來,從而違反了單例模式中實例唯一的原則。 解決這個問題的辦法是為指示類是否已經實例化的變量提供一個互斥鎖(雖然這樣會降低效率)。

  2.單例模式的八種寫法

  2.1 餓漢式(靜態常量)[可用]

public class Singleton {

 

private final static Singleton INSTANCE = new Singleton();

 

private Singleton(){}

 

public static Singleton getInstance(){

return INSTANCE;

}

}

  優點:這種寫法比較簡單,就是在類裝載的時候就完成實例化。避免了線程同步問題。

  缺點:在類裝載的時候就完成實例化,沒有達到 Lazy Loading 的效果。如果從始至終從未使用過這個實例,則會造成內存的浪費。

  2.2 餓漢式(靜態代碼塊)[可用]

public class Singleton {

private static Singleton instance;

static {

instance = new Singleton();

}

private Singleton() {}

public Singleton getInstance() {

return instance;
}

}

  這種方式和上面的方式其實類似,只不過將類實例化的過程放在了靜態代碼塊中,也是在類裝載的時候,就執行靜態代碼塊中的代碼,初始化類的實例。優缺點和上面是一樣的。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 性一交一乱一伦一| 欧美人与动人物乱大交| 娇妻之欲海泛舟白丽交换| 亚洲精品国产精品乱码不卞| 高清中文字幕免费观在线| 一本一本久久a久久精品综合麻豆| 国产精品对白刺激久久久| 在线看无码的免费网站| 国产伦理一区二区三区| 日韩午夜r电影在线观看| 精品久久人人做人人爽综合| 免费看黄色a级片| 久久99国产精品久久99| 精品久久久久久久久久中文字幕 | 欧美aa在线| 和黑帮老大365天完整版免费| 免费网站看v片在线香蕉| 两个人看的www视频日本| 高清仑乱| 娇妻第一次被多p| 阿娇囗交全套高清视频| 大香伊人久久精品一区二区| 日日操夜夜操视频| 欧美日韩精品| 亚洲s色大片| 国产卡一卡二卡3卡4乱码| 啊灬啊别停老师灬用力啊视频| 秋霞日韩一区二区三区在线观看| 国产精品夜色一区二区三区| 顶级欧美色妇xxxxx| 精品无人区一区二区三区a| 偷窥无罪之诱人犯罪电影| 8av国产精品爽爽ⅴa在线观看| 打开腿我想亲亲你下面视频| 亚洲无卡视频| 91视频入口| 国产福利电影| 日本中文字幕一区二区有码在线 | 日本中文字幕一区二区有码在线 | 亚洲精品午夜久久久伊人| 国产三级在线免费|