91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

設計模式系列教程之單例模式-原理介紹

發布時間:2020-07-07 09:29:48 來源:網絡 閱讀:279 作者:凱哥Java 欄目:編程語言

設計模式系列教程之單例模式-原理介紹

設計模式系列教程之單例模式-原理介紹


一:單例模式(Singleton)學習步驟

設計模式系列教程之單例模式-原理介紹

經典的單例模式原理:

本文出處:凱哥Java(wx:kaigejava)

先來看看單例模式的介紹:

設計模式系列教程之單例模式-原理介紹

其重點就是,使類對象成為系統中唯一的一個實例。怎么理解這句話呢?

我們從數學與邏輯學中來理解:singleton的定義是“有且僅有一個”的意思。

我們來看看單例在哪些地方會被使用到,來理解單例模式的意義:

比如我們系統中使用到的線程池、數據源、緩存及硬件等設備。

從線程池、緩存我們就可以看出單例模式的意義:如果多個實例會有造成沖突、結果的不一致性等問題基于解決這個問題,經過總結,得到了可以在系統中有且僅有一個對象就可以了。

思考:

1:是否可以使用靜態變量的方式類實現呢?

其實從使用效果上來看,這種方式也是可以的。

2:程序員之間協商一個全局變量是否也可以呢?

這樣做,從使用效果來看也是可以的。

總結:

單例模式;確保一個類最多只有一個實例,并提供一個全局的訪問。

怎么設置類為單例呢?

思考點:

1:怎么讓類不被隨意的構造出來?

2:如果不能隨意構造出類,那么如果想要使用這個類怎么辦?

問題一:我們來看看,正常的創建類是怎么創建的?

Student studnet = new Student();

使用的是new關鍵字來創建的。我們又知道使用new關鍵字創建類的時候,其實調用的就是類的默認構造器-->既是無參構造器。

所以,如果想要類只有一個,把構造器私有化,這樣就不能使用new關鍵字也就是不能使用無參構造器來創建類了。這樣就保證了類不被隨意的創造了。

問題二:如果構造函數被私有化了,想要使用類怎么辦?

可以在Student類中new Student().然后對外提供一個公共的static的方法來獲取即可。

來看看經典單例模式的類圖:

設計模式系列教程之單例模式-原理介紹

好了。本節單例模式原理講解完成。下一節課,我們通過一個小例子用代碼實現單例模式

凱哥個人博客:www.kaigejava.com

聯系凱哥-->凱哥公眾號:凱哥Java(kaigejava)

本文凱哥博客地址:http://kaigejava.com/gwjeesns/article/detail/549


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上林县| 礼泉县| 巧家县| 富宁县| 溧阳市| 临洮县| 澜沧| 太谷县| 吉林省| 当涂县| 宽甸| 尤溪县| 平泉县| 汉源县| 海林市| 武强县| 鄂州市| 绥中县| 新野县| 贺兰县| 秀山| 怀来县| 高要市| 贡觉县| 平陆县| 科技| 永宁县| 加查县| 汝州市| 龙山县| 宁陵县| 洛阳市| 栖霞市| 澄江县| 武平县| 云和县| 顺昌县| 萨迦县| 九江县| 清河县| 雅江县|