日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

php單例模式實(shí)現(xiàn)對(duì)象只被創(chuàng)建一次

 天下無(wú)敵小勇 2016-02-16

這是我在php面試題中遇到的一道試題,單例模式按字面來(lái)看就是某一個(gè)類(lèi)只有一個(gè)實(shí)例,這樣做的好處還是很大的,比如說(shuō)數(shù)據(jù)庫(kù)的連接,我們只需要實(shí)例化一次,不需要每次都去new了,這樣極大的降低了資源的耗費(fèi)。

單例類(lèi)至少擁有以下三種公共元素:

    必須擁有一個(gè)構(gòu)造函數(shù),并且必須被標(biāo)記為private。
    擁有一個(gè)保存類(lèi)的實(shí)例的靜態(tài)成員變量。
    擁有一個(gè)訪(fǎng)問(wèn)這個(gè)實(shí)例的公共的靜態(tài)方法

具體使用方面,我在下面php實(shí)例中注釋的很清楚:


  1. <?php
  2. /**
  3. * by www.
  4. */
  5. class Mysql{
  6. //該屬性用來(lái)保存實(shí)例
  7. private static $conn;
  8. //構(gòu)造函數(shù)為private,防止創(chuàng)建對(duì)象
  9. private function __construct(){
  10. $this->conn = mysql_connect('localhost','root','');
  11. }
  12. //創(chuàng)建一個(gè)用來(lái)實(shí)例化對(duì)象的方法
  13. public static function getInstance(){
  14. if(!(self::$conn instanceof self)){
  15. self::$conn = new self;
  16. }
  17. return self::$conn;
  18. }
  19. //防止對(duì)象被復(fù)制
  20. public function __clone(){
  21. trigger_error('Clone is not allowed !');
  22. }
  23. }
  24. //只能這樣取得實(shí)例,不能new 和 clone
  25. $mysql = Mysql::getInstance();
  26. ?>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多