亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP設計模式之單例模式定義與用法分析

2024-05-05 00:07:58
字體:
來源:轉載
供稿:網友

本文實例分析了PHP設計模式之單例模式。分享給大家供大家參考,具體如下:

單例模式(Singleton Pattern 單件模式或單元素模式),是常見的一種設計模式,它有三個特點

  • 1.只能有一個實例
  • 2.必須自行創建這個實例
  • 3.必須給其他對象提供這一實例

下面用PHP代碼實現一下

<?PHP/** * Created by PHPStorm. * User: tiansi * Date: 18/1/2 * Time: 下午3:40 */class Signleton{  private static $_instanse = null;  //私有化構造方法 防止外界使用new實例化對象  private function __construct()  {  }  //私有化克隆方法 防止外界克隆對象  private function __clone()  {    // TODO: Implement __clone() method.  }  //靜態化 提供單例訪問入口  static function getInstance(){    if (is_null(self::$_instanse) || !isset(self::$_instanse)){      self::$_instanse = new self();    }    return self::$_instanse;  }  public function say(){    echo 'I am signleton';  }}

下面試一下調用

<?PHP/** * Created by PHPStorm. * User: tiansi * Date: 18/1/2 * Time: 下午3:48 *///第一種方式會報錯 因為把構造方法私有化了//PHP Fatal error: Uncaught Error: Call to private Signleton::__construct() from invalid context in /Users/apple/uxin/SignletonController.PHP:11/*$signleton1 = new Signleton();$signleton1->say();*///上述代碼報錯:Fatal error: Call to private Signleton::__construct() //實例化成功 輸出I am signleton$signleton2 = Signleton::getInstance();$signleton2->say();

運行結果:

I am signleton

它的優缺點

優點:

  • 1.在單例模式中,活動的單例只有一個實例,對單例類的所有實例化得到的都是相同的一個實例。這樣就 防止其它對象對自己的實例化,確保所有的對象都訪問一個實例
  • 2.單例模式具有一定的伸縮性,類自己來控制實例化進程,類就在改變實例化進程上有相應的伸縮性。
  • 3.提供了對唯一實例的受控訪問。
  • 4.由于在系統內存中只存在一個對象,因此可以 節約系統資源,當 需要頻繁創建和銷毀的對象時單例模式無疑可以提高系統的性能。
  • 5.允許可變數目的實例。
  • 6.避免對共享資源的多重占用。

缺點:

  • 1.不適用于變化的對象,如果同一類型的對象總是要在不同的用例場景發生變化,單例就會引起數據的錯誤,不能保存彼此的狀態。
  • 2.由于單利模式中沒有抽象層,因此單例類的擴展有很大的困難。
  • 3.單例類的職責過重,在一定程度上違背了“單一職責原則”。
  • 4.濫用單例將帶來一些負面問題,如為了節省資源將數據庫連接池對象設計為的單例類,可能會導致共享連接池對象的程序過多而出現連接池溢出;如果實例化的對象長時間不被利用,系統會認為是垃圾而被回收,這將導致對象狀態的丟失。

這是單例模式的優缺點,因為語言類型的不同,PHP的單例模式又不一樣

眾所周知,PHP語言是一種解釋型的腳本語言,這種運行機制使得每個PHP頁面被解釋執行后,所有的相關資源都會被回收。也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存,這和asp.net、Java等編譯型是不同的,比如在Java中單例會一直存在于整個應用程序的生命周期里,變量是跨頁面級的,真正可以做到這個實例在應用程序生命周期中的唯一性。然而在PHP中,所有的變量無論是全局變量還是類的靜態成員,都是頁面級的,每次頁面被執行時,都會重新建立新的對象,都會在頁面執行完畢后被清空,這樣似乎PHP單例模式就沒有什么意義了,所以PHP單例模式我覺得只是針對單次頁面級請求時出現多個應用場景并需要共享同一對象資源時才有用

比如

1.應用程序與數據庫交互

一個應用中會存在大量的數據庫操作,比如過數據庫句柄來連接數據庫這一行為,使用單例模式可以避免大量的new操作,因為每一次new操作都會消耗內存資源和系統資源。

2.控制配置信息

如果系統中需要有一個類來全局控制某些配置信息, 那么使用單例模式可以很方便的實現

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美裸体xxxxx| 欧美二区乱c黑人| 国模精品系列视频| 国产69精品99久久久久久宅男| 一本大道香蕉久在线播放29| 日韩av在线一区二区| 正在播放欧美视频| 成人免费网站在线| 欧美精品久久久久久久免费观看| 亚洲国产精久久久久久久| 国产精品一区二区性色av| 日本精品一区二区三区在线播放视频| 97在线视频一区| 米奇精品一区二区三区在线观看| 在线观看国产精品91| 国产视频亚洲精品| 国产精品久久久久久久久久久不卡| 色yeye香蕉凹凸一区二区av| 国产亚洲精品久久久久动| 少妇高潮 亚洲精品| 欧美第一淫aaasss性| 久久成年人视频| 日韩欧美在线视频观看| 色视频www在线播放国产成人| www.精品av.com| 亚洲a成v人在线观看| 成人精品久久久| 国产福利精品在线| 久久天天躁狠狠躁老女人| 精品成人久久av| 97欧美精品一区二区三区| 国产精品自拍网| 国产丝袜一区二区三区| 国产精品亚洲片夜色在线| 91po在线观看91精品国产性色| 久久精品国产亚洲7777| 中文字幕亚洲欧美日韩高清| 亚洲性视频网址| 欧美黑人一区二区三区| 精品亚洲男同gayvideo网站| 欧美性精品220| 91久久精品久久国产性色也91| 国产精品久久久久久网站| 国产精品久久在线观看| 黑人巨大精品欧美一区免费视频| 狠狠躁18三区二区一区| 亚洲一区二区三区777| 日韩av电影在线免费播放| 亚洲国产精品免费| 日韩欧美极品在线观看| 亚洲亚裔videos黑人hd| 欧美高清视频免费观看| 亚洲成人免费网站| 国产精品aaaa| 亚洲一区二区免费| 国产精品久久久久秋霞鲁丝| 欧美激情一级精品国产| 狠狠躁天天躁日日躁欧美| 久久综合免费视频影院| 国产精品久久久久av免费| 亚洲日本中文字幕免费在线不卡| 亚洲精品美女久久| 欧美视频免费在线| 国产99久久精品一区二区 夜夜躁日日躁| 欧美成人精品一区二区三区| 国产精品黄色影片导航在线观看| 精品香蕉在线观看视频一| 亚洲色图狂野欧美| 国外成人在线播放| 亚洲xxx大片| 国产免费久久av| 久久手机精品视频| 国产手机视频精品| 中文字幕av一区二区| 久久综合色88| 欧美巨乳美女视频| 欧美日韩国产在线看| 亚洲精品久久久久久久久久久久| 久久久久久国产| 国产免费观看久久黄| 国产91在线播放精品91| 美女视频久久黄| 国产精品大陆在线观看| 青青精品视频播放| 久久久久久久久久久久av| 国产精品视频久久久久| 亚洲跨种族黑人xxx| 国内精品久久久久伊人av| 欧美高清一级大片| 亚洲第一偷拍网| 国精产品一区一区三区有限在线| 国产综合福利在线| 亚洲最新在线视频| 欧美综合一区第一页| 亚洲成人黄色网址| 精品亚洲一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 亚洲综合大片69999| 狠狠色狠狠色综合日日五| 亚洲区一区二区| 欧美视频一区二区三区…| 亚洲国产成人久久综合| 亚洲香蕉成视频在线观看| 成人在线小视频| 欧美猛交免费看| 国产成人高潮免费观看精品| 国产成人福利视频| 日韩va亚洲va欧洲va国产| 国产91成人在在线播放| 国产视频精品久久久| 国产日产欧美精品| 一色桃子一区二区| 日韩欧美在线字幕| 日韩视频―中文字幕| 亚洲图片制服诱惑| 成人国产精品一区二区| 国产亚洲激情在线| 中文字幕一区日韩电影| 日本午夜精品理论片a级appf发布| 亚洲精品日产aⅴ| 国产噜噜噜噜噜久久久久久久久| 91久久国产综合久久91精品网站| 国产91|九色| 国产成人精品视频在线| 国产欧美日韩中文字幕在线| 欧美天天综合色影久久精品| 欧美裸体男粗大视频在线观看| www.日韩不卡电影av| 欧美日韩裸体免费视频| 亚洲精品国产品国语在线| 一本一道久久a久久精品逆3p| 亚洲欧美日韩精品| 欧美大片在线影院| 国产精品第三页| 国产剧情久久久久久| 国产亚洲在线播放| 2018中文字幕一区二区三区| 欧美日韩国产成人高清视频| 欧美大尺度电影在线观看| 国产精品一区电影| 欧美日韩久久久久| 国产精品91久久久久久| 欧美一级免费视频| 97国产在线视频| 国产午夜精品全部视频播放| 欧美日韩在线免费观看| 中文字幕av一区二区三区谷原希美| 97激碰免费视频| 8090成年在线看片午夜| 成人免费在线视频网站| 亚洲尤物视频网| 国产成人亚洲综合青青| 国产精品aaa| 久久久久成人精品| 亚洲天天在线日亚洲洲精| 国产69精品久久久久久| 久久久久久中文字幕| 国产网站欧美日韩免费精品在线观看| 日韩在线视频二区| 91在线视频导航| 久热精品视频在线免费观看| 日韩激情片免费| 精品一区二区三区四区在线| 国产主播在线一区|