設計模式學習之單例模式

weixin_33686714發表於2018-12-29

UML結構類圖的常用畫法

簡單工廠

設計模式學習之外觀模式

設計模式學習之介面卡模式

Demo傳送門

單例模式我們開發中用的很多了,最常見的是全域性配置檔案或者具體的如內購支付工具,或者資料庫管理,一些第三方SDK如友盟,Bugly等的配置等,那麼究竟什麼是單例模式呢?下面我描述一個簡單場景,分別用普通處理方式和單例模式進行處理,後面會給出單例模式的定義和具體應用場景

案例:對配置檔案的讀取,這個配置檔案中設定的是專案中用到的一些引數,比如訪問的伺服器地址,分正式,測試和預發環境

我們建一個配置檔案,status:0,1,2代表測試,預發和正式的三種狀態,Server代表三種狀態下的伺服器地址,當然這裡只是個例子,具體專案中對多環境的配置這塊,我之前寫過一篇文章專門講述過,有興趣的朋友可以前去檢視下App多環境配置的方法

言歸正傳,下面介紹普通方法處理配置檔案

1.普通方法處理

首先是建一個處理配置檔案的類,提供一個解析配置檔案的方法,並且在這個類中提供server屬性以供外界訪問

客戶端呼叫如下:

那麼這麼做的不足之處在哪裡呢?從表面看我們也具有一定的封裝性,但是既然是配置檔案,配置的東西肯定在專案中多處用到,我們這種方式是生成了一個ParseConfig的例項變數去訪問,如果多處用到,就要在使用到的地方多次生成例項變數訪問,而且對檔案的訪問也是要消耗資源的,那麼有沒有可能只初始化一次,對配置檔案只解析一次的方法呢?單例模式就可以實現,下面著重講述一下單例模式

2.單例模式

單例模式的定義

保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。

單例模式的功能

用來保證一個類在執行期間只會被建立一個類例項,此外還提供了全域性唯一訪問這個類例項的訪問點

理論畢竟枯燥,主要還是看程式碼實現

客戶端呼叫

入口處初始化

呼叫

相關文章