小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 天下無敵小勇 2016-02-16

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

單例類至少擁有以下三種公共元素:

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

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


  1. <?php
  2. /**
  3. * by www.
  4. */
  5. class Mysql{
  6. //該屬性用來保存實(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è)用來實(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)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(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)遵守用戶 評(píng)論公約

    類似文章 更多