成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

理解php單例模式

xi4oh4o / 1868人閱讀

摘要:二為什么用單例實(shí)際項(xiàng)目中像數(shù)據(jù)庫查詢,日志輸出,全局回調(diào),統(tǒng)一校驗(yàn)等模塊。單例模式的好處減少頻繁創(chuàng)建,節(jié)省了。因此在單例模式必須包含三要素私有化構(gòu)造函數(shù),私有化。

單例作為一個(gè)最經(jīng)典的設(shè)計(jì)模式之一,到底什么是單例?為什么要用單例?怎么設(shè)計(jì)單例?php中單例如何具體實(shí)現(xiàn)?

一、什么是單例

wiki百科:?jiǎn)卫J?,也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。 在應(yīng)用這個(gè)模式時(shí),單例對(duì)象的類必須保證只有一個(gè)實(shí)例存在。 許多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)的全局對(duì)象,這樣有利于我們協(xié)調(diào)系統(tǒng)整體的行為。

通俗的說,也就是對(duì)于某一個(gè)功能只能實(shí)例化一個(gè)對(duì)象。

二、為什么用單例

實(shí)際項(xiàng)目中像數(shù)據(jù)庫查詢,日志輸出,全局回調(diào),統(tǒng)一校驗(yàn)等模塊。這些模塊功能單一,但需要多次訪問,如果能夠全局唯一,多次復(fù)用會(huì)大大提升性能。這也就是單例存在的必要性。

單例模式的好處:

1:減少頻繁創(chuàng)建,節(jié)省了cpu。

2:靜態(tài)對(duì)象公用,節(jié)省了內(nèi)存。

3:功能解耦,代碼已維護(hù)。

三、如何設(shè)計(jì)單例

通過上面的描述,單例的核心是,實(shí)例一次生成,全局唯一,多次調(diào)用。因此在單例模式必須包含三要素:

1:私有化構(gòu)造函數(shù),私有化clone。也就是不能new,不能clone。【唯一】

2:擁有一個(gè)靜態(tài)變量,用于保存當(dāng)前的類?!疚ㄒ蝗绾伪4妗?/p>

3:提供一個(gè)公共的訪問入口?!究梢栽L問】

四、php實(shí)現(xiàn)

php 實(shí)現(xiàn)的單例模式

singletonFunc();

$singleInstance2 = XiaozhuaiSingleton::getInstance();
$singleInstance2->singletonFunc();

// 校驗(yàn)是否是一個(gè)實(shí)例
var_dump($singleInstance === $singleInstance2);  // true ,一個(gè)對(duì)象

【轉(zhuǎn)載請(qǐng)注明:理解php單例模式 | 靠譜崔小拽 】

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23147.html

相關(guān)文章

  • 大話PHP設(shè)計(jì)模式單例模式

    摘要:上面是簡(jiǎn)單的單例模式,自己寫程序的話夠用了,如果想繼續(xù)延伸,請(qǐng)傳送至大話設(shè)計(jì)模式之單例模式升級(jí)版 看了那么多單例的介紹,都是上來就說怎么做,也沒見說為什么這么做的。那小的就來說說為什么會(huì)有單例這個(gè)模式以便更好的幫助初學(xué)者真正的理解這個(gè)設(shè)計(jì)模式,如果你是大神,也不妨看完指正一下O(∩_∩)O首先我不得不吐槽一下這個(gè)模式名字單例,初學(xué)者通過字面很難理解什么是單例,我覺得應(yīng)該叫唯一模式更貼切...

    VEIGHTZ 評(píng)論0 收藏0
  • 單例模式理解php

    摘要:?jiǎn)卫J筋櫭剂x,就是只有一個(gè)實(shí)例。為什么要使用單例模式語言本身的局限性語言是一種解釋型的腳本語言,這種運(yùn)行機(jī)制使得每個(gè)頁面被解釋執(zhí)行后,所有的相關(guān)資源都會(huì)被回收。 單例模式(Singleton Pattern):顧名思義,就是只有一個(gè)實(shí)例。作為對(duì)象的創(chuàng)建模式,單例模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。 為什么要使用單例模式 1、PHP語言本身的局限性P...

    Invoker 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    Dionysus_go 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    vspiders 評(píng)論0 收藏0
  • php 設(shè)計(jì)模式之工廠模式、單例模式、注冊(cè)樹模式

    摘要:的設(shè)計(jì)模式有很多種,本文取最簡(jiǎn)單的三種模式工廠模式單例模式和注冊(cè)樹模式進(jìn)行簡(jiǎn)單的講解。文件創(chuàng)建完后,咱們回到單元測(cè)試文件文件再執(zhí)行一下單元測(cè)試命令發(fā)現(xiàn),也能返回成功,這樣的話我們就能很方便的修改任何驅(qū)動(dòng)了。 php 設(shè)計(jì)模式之工廠模式、單例模式、注冊(cè)樹模式 在軟件工程中,創(chuàng)建型設(shè)計(jì)模式承擔(dān)著對(duì)象創(chuàng)建的職責(zé),嘗試創(chuàng)建適合程序上下文的對(duì)象,對(duì)象創(chuàng)建設(shè)計(jì)模式的產(chǎn)生是由于軟件工程設(shè)計(jì)的問題,具...

    liangzai_cool 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<