0 單例模式簡(jiǎn)介
0.0 單例模式定義
單例模式是GOF二十三中經(jīng)典設(shè)計(jì)模式的簡(jiǎn)單常用的一種設(shè)計(jì)模式,單例模式的基本結(jié)構(gòu)需滿足以下要求。
單例模式的核心結(jié)構(gòu)只有一個(gè)單例類,單例模式要保證這個(gè)類在運(yùn)行期間只能被實(shí)例化一次,即只會(huì)被創(chuàng)建唯一的一個(gè)單例類的實(shí)例。
單例模式需要提供一個(gè)全局唯一能得到這個(gè)類實(shí)例的訪問點(diǎn),一般通過定義一個(gè)名稱類似為GetInstance的公用方法實(shí)現(xiàn)這一目的。
要滿足上面的兩點(diǎn)要求,應(yīng)該很容易的想到:
1.該類的構(gòu)造函數(shù)應(yīng)該是私有的,不能隨意被實(shí)例化是保證只有一個(gè)實(shí)例的前提。
2.該類需提供一個(gè)公開的且返回值類型為單例類類型的公用方法。
來看一下單例模式的基本結(jié)構(gòu)圖:
0.1 單例模式應(yīng)用場(chǎng)景
通過上面對(duì)單例模式基本定義的了解,單例模式的應(yīng)用場(chǎng)景也就很明確了。
單例模式適用于各種系統(tǒng)中某個(gè)類的對(duì)象只能存在一個(gè)類似場(chǎng)景, 我們現(xiàn)在回顧一下上一篇簡(jiǎn)單工廠模式中的大致實(shí)現(xiàn)